From b393cad4e49d59edf4a5a48d896e041c418dbdac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Wed, 19 Feb 1997 16:04:59 -0800 Subject: [PATCH] fix for --without-dynamic-modules Rev: lib/master.pike:1.30 Rev: src/configure.in:1.57 --- lib/master.pike | 54 ++++++++++++++++++++++++++---------------------- src/configure.in | 22 +------------------- 2 files changed, 30 insertions(+), 46 deletions(-) diff --git a/lib/master.pike b/lib/master.pike index 9720ea09d9..580a2622e2 100644 --- a/lib/master.pike +++ b/lib/master.pike @@ -208,8 +208,13 @@ class dirnode object|program `[](string index) { index=dirname+"/"+index; - return - ((object)"/master")->findmodule(index) || (program) index; + if(object o=((object)"/master")->findmodule(index)) + { + if(mixed tmp=o->_module_value) + return tmp; + return o; + } + return (program) index; } }; @@ -225,7 +230,7 @@ class mergenode } }; -object low_findmodule(string fullname) +object findmodule(string fullname) { mixed *stat; program p; @@ -249,25 +254,13 @@ object low_findmodule(string fullname) if(mixed *stat=file_stat(fullname)) { if(stat[1]==-2) - return low_findmodule(fullname+"/module"); + return findmodule(fullname+"/module"); } #endif return UNDEFINED; } -mixed findmodule(string path) -{ - if(object o=low_findmodule(path)) - { - if(mixed tmp=o->_module_value) - { - return tmp; - } - } - return o; -} - varargs mixed resolv(string identifier, string current_file) { mixed ret; @@ -278,19 +271,30 @@ varargs mixed resolv(string identifier, string current_file) tmp=current_file/"/"; tmp[-1]=identifier; path=combine_path(getcwd(), tmp*"/"); - if(ret=findmodule(path)) return ret; + ret=findmodule(path); } - foreach(pike_module_path, path) - { - path=combine_path(path,identifier); - if(ret=findmodule(path)) return ret; - } + if(!ret) + { + foreach(pike_module_path, path) + { + path=combine_path(path,identifier); + if(ret=findmodule(path)) break; + } + } - string path=combine_path(pike_library_path+"/modules",identifier); - if(ret=findmodule(path)) return ret; + if(!ret) + { + string path=combine_path(pike_library_path+"/modules",identifier); + if(!(ret=findmodule(path))) + ret=_static_modules[identifier]; + } - if(ret=_static_modules[identifier]) return ret; + if(ret) + { + if(mixed tmp=ret->_module_value) return tmp; + return ret; + } return UNDEFINED; } diff --git a/src/configure.in b/src/configure.in index e38120d7e5..f4e8ac8260 100644 --- a/src/configure.in +++ b/src/configure.in @@ -1,4 +1,4 @@ -AC_REVISION("$Id: configure.in,v 1.56 1997/02/07 00:54:36 hubbe Exp $") +AC_REVISION("$Id: configure.in,v 1.57 1997/02/20 00:04:59 hubbe Exp $") AC_INIT(interpret.c) AC_CONFIG_HEADER(machine.h) @@ -427,26 +427,6 @@ if test "${pike_cv_sys_os}" = "Linux"; then AC_MSG_WARN(I will compensate for this by adding -lc -lm) LIBS="${LIBS} -lc -lm" fi - -#if 0 - if test $ldflags_is_set ; then - AC_MSG_CHECKING(for -rdynamic) - AC_CACHE_VAL(pike_cv_ld_accepts_rdynamic, - [ - OLD_LDFLAGS="$LDFLAGS" - LDFLAGS="$LFFLAGS -rdynamic" - AC_TRY_LINK([],[ exit(0); ],[ - pike_cv_ld_accepts_rdynamic=yes - ],[ pike_cv_ld_accepts_rdynamic=no ]) - LDFLAGS="$OLD_LDFLAGS" - ]) - AC_MSG_RESULT($pike_cv_ld_accepts_rdynamic) - - if test x$pike_cv_ld_accepts_rdynamic = xyes ; then - LDFLAGS="$LDFLAGS -rdynamic" - fi - fi -#endif fi ######################################################################## -- GitLab