diff --git a/lib/master.pike.in b/lib/master.pike.in index a78be8f5474afe0eb03d530e5817f9b5d050d698..71f2b79617505f59c4d8d92e7248ea697bc562ff 100644 --- a/lib/master.pike.in +++ b/lib/master.pike.in @@ -780,6 +780,11 @@ string getcwd() string combine_path_with_cwd(string ... paths) { +#ifdef PIKE_MODULE_RELOC + /* This is necessary to find compat modules... */ + if (has_prefix(paths[0], "/${PIKE_MODULE_PATH}/"+UPDIR)) + return "/${PIKE_MODULE_PATH}/"+combine_path(paths[0][21..],@paths[1..]); +#endif return combine_path(IS_ABSOLUTE_PATH(paths[0])?"":getcwd(),@paths); } @@ -1659,7 +1664,11 @@ program low_cast_to_program(string pname, { return prog; } - pname=combine_path("",pname); +#ifdef PIKE_MODULE_RELOC + /* This is necessary to find compat modules... */ + if (!has_prefix(pname, "/${PIKE_MODULE_PATH}/"+UPDIR)) +#endif + pname=combine_path("",pname); return findprog(pname,ext,handler,mkobj); } else {