]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltconfig.in: Reverted June 6's patch for new GNU ld output, it
authorAlexandre Oliva <oliva@dcc.unicamp.br>
Thu, 10 Jun 1999 14:42:34 +0000 (14:42 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Thu, 10 Jun 1999 14:42:34 +0000 (14:42 +0000)
is no longer needed, as ld reverted to the original format.
* NEWS: Likewise.

* ltconfig.in: When testing self-dlopening, test whether dlclose
crashes.  On FreeBSD 3.1, it does.  :-(
* libltdl/configure.in: Likewise.
* NEWS: Note work-around.
Reported by Pavel Roskin <pavel_roskin@geocities.com>

ChangeLog
NEWS
libltdl/configure.in
ltconfig.in

index d57d59af81757db77bd53f9755abf2c5e42b16f5..a4b29ed517b103737708e1c2c27ad3ff809dcf3e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+1999-06-10  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+       * ltconfig.in: Reverted June 6's patch for new GNU ld output, it
+       is no longer needed, as ld reverted to the original format.
+       * NEWS: Likewise.
+
+       * ltconfig.in: When testing self-dlopening, test whether dlclose
+       crashes.  On FreeBSD 3.1, it does.  :-(
+       * libltdl/configure.in: Likewise.
+       * NEWS: Note work-around.
+       Reported by Pavel Roskin <pavel_roskin@geocities.com>
+
 1999-06-09  Gary V. Vaughan  <gary@oranda.demon.co.uk>
 
        * ltconfig.in (exeext): autoconf's AC_EXEEXT uses "no" to indicate
diff --git a/NEWS b/NEWS
index e0959b60268f8add6f0ee8f274c70e3524a4bf98..d1aedbd7fe5ee77585ac8710fbed0bd029a7561d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -17,7 +17,7 @@ New in 1.3b: 1999-??-??; CVS version 1.3a, Libtool team:
 * Various bugfixes
 \f
 New in CVS version 1.3.2a, Libtool team:
-* Support new GNU ld (ELF support detection).
+* Work around self-dlclose bug in FreeBSD 3.1.
 * Expand convenience libraries when creating reloadable objects.
 * Do not pass -whole-archive or equivalent to symbol extractor.
 * Create directory to expand convenience libraries only when needed.
index d6d7b116f31fce2356470c5160436d1660b3b362..839fc00e8a158d712353932393555cefaee1aa4d 100644 (file)
@@ -352,7 +352,7 @@ if test x"$ac_cv_sys_symbol_underscore" = xyes; then
 fnord() { int i=42;}
 main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
     if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
-              if(ptr1 && !ptr2) exit(0); } exit(1); } 
+              if(ptr1 && !ptr2) { dlclose(self); exit(0); } } exit(1); } 
 ],     libltdl_cv_need_uscore=no, libltdl_cv_need_uscore=yes,
        libltdl_cv_need_uscore=cross
 )])
index 1f3239f9617e1184d27d29ec532749b005b9a40b..c8b45a527f47834cff35601a8ddd287c1e308b31 100755 (executable)
@@ -1418,7 +1418,7 @@ EOF
     ;;
 
   beos*)
-    if $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
+    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
       allow_undefined_flag=unsupported
       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
       # support --undefined.  This deserves some investigation.  FIXME
@@ -1465,7 +1465,7 @@ EOF
     ;;
 
   netbsd*)
-    if $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
+    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
     else
@@ -1487,7 +1487,7 @@ EOF
 *** used, and then restart.
 
 EOF
-    elif $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
+    elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
       archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib'
       archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
     else
@@ -1503,7 +1503,7 @@ EOF
     ;;
 
   *)
-    if $LD --help 2>&1 | sed -n '/: supported targets:/,/:/p' | grep 'elf' > /dev/null; then
+    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
     else
@@ -2543,7 +2543,7 @@ else
 fnord() { int i=42;}
 main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
     if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
-              if(ptr1 || ptr2) exit(0); } exit(1); } 
+              if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
 
 EOF
 if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
@@ -2616,7 +2616,7 @@ else
 fnord() { int i=42;}
 main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
     if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
-    if(ptr1 || ptr2) exit(0); } exit(1); } 
+    if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } 
 
 EOF
 if { (eval echo $progname:@LINENO@: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null