]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* NEWS: Updated.
authorCharles Wilson <cwilson@ece.gatech.edu>
Sat, 1 Jun 2002 14:09:50 +0000 (14:09 +0000)
committerGary V. Vaughan <gary@gnu.org>
Sat, 1 Jun 2002 14:09:50 +0000 (14:09 +0000)
* libtool.m4: use $NM to create the symbol list on cygwin, not
$ltdll_cmds as on mingw.  For all tags, (and host=cygwin) set
allow_undefined_flag="" so that the --auto-import magic
works properly.  For all tags (and host=cygiwn) set
always_export_symbols=no -- it is unnecessary thanks to
binutils' auto-export magic.
* libltdl/ltdl.c: Don't force cygwin to use the LoadLibrary
wrapper; use cygwin's builtin implementatino of dl*.
* cdemo/Makefile.am: the downside of unsetting
'allow_undefined_flag' -- we must include -no-undefined
in the _la_LDFLAGS variable.
* depdemo/l1/Makefile.am: ditto.
* depdemo/l2/Makefile.am: ditto.
* depdemo/l3/Makefile.am: ditto.
* depdemo/l4/Makefile.am: ditto.
* mdemo/Makefile.am: ditto.
* tagdemo/Makefile.am: ditto.
* demo/Makefile.am: ditto.  But also, we must make special
provision to clean up the hell0 wrapper script.
* pdemo/Makefile.am: ditto -no-undefined.  ditto hell0.
And use 'hell_static' instead of 'hell.static'.
* tests/pdemo-inst.test: use 'hell_static' instead
of 'hell.static'.
* tests/pdemo-exec.test: ditto.

15 files changed:
ChangeLog
NEWS
cdemo/Makefile.am
demo/Makefile.am
depdemo/l1/Makefile.am
depdemo/l2/Makefile.am
depdemo/l3/Makefile.am
depdemo/l4/Makefile.am
libltdl/ltdl.c
libtool.m4
mdemo/Makefile.am
pdemo/Makefile.am
tagdemo/Makefile.am
tests/pdemo-exec.test
tests/pdemo-inst.test

index 442862f5f2846c3b9235b6f44f9bff475c5912b0..146246c0b556d028029bcd213a1aa458258c0cfa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2002-05-31  Charles Wilson  <cwilson@ece.gatech.edu>
+
+       * NEWS: Updated.
+       * libtool.m4: use $NM to create the symbol list on cygwin, not
+       $ltdll_cmds as on mingw.  For all tags, (and host=cygwin) set
+       allow_undefined_flag="" so that the --auto-import magic
+       works properly.  For all tags (and host=cygiwn) set
+       always_export_symbols=no -- it is unnecessary thanks to
+       binutils' auto-export magic.
+       * libltdl/ltdl.c: Don't force cygwin to use the LoadLibrary
+       wrapper; use cygwin's builtin implementatino of dl*.
+       * cdemo/Makefile.am: the downside of unsetting
+       'allow_undefined_flag' -- we must include -no-undefined
+       in the _la_LDFLAGS variable.
+       * depdemo/l1/Makefile.am: ditto.
+       * depdemo/l2/Makefile.am: ditto.
+       * depdemo/l3/Makefile.am: ditto.
+       * depdemo/l4/Makefile.am: ditto.
+       * mdemo/Makefile.am: ditto.
+       * tagdemo/Makefile.am: ditto.
+       * demo/Makefile.am: ditto.  But also, we must make special
+       provision to clean up the hell0 wrapper script.
+       * pdemo/Makefile.am: ditto -no-undefined.  ditto hell0.
+       And use 'hell_static' instead of 'hell.static'.
+       * tests/pdemo-inst.test: use 'hell_static' instead
+       of 'hell.static'.
+       * tests/pdemo-exec.test: ditto.
+
 2002-05-30  Charles Wilson  <cwilson@ece.gatech.edu>
 
        * tests/build-relink2.test: look for installed libl3.la
diff --git a/NEWS b/NEWS
index 739a4fa9fa06436ac0b6649b53301aa234f70008..b1f2f52b39fb257fb5753edf3b7649f75d12ea95 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
 NEWS - list of user-visible changes between releases of GNU Libtool
 
 New in 1.4f: 2002-??-??; CVS version 1.4e, Libtool team:
+* libltdl will now use cygwins dlopen API instead of always forcing
+  LoadLibrary.
 * Support auto-import patch to binutils on cygwin for much improved dll
   support.
 * Bug fixes.
index 4f9d2930a9b9cfc2661ae727b2913f82a4a3cf6d..62c930f8738dfdd56aeced65ecefaa55f4e07ca3 100644 (file)
@@ -8,6 +8,7 @@ noinst_LTLIBRARIES = libfoo.la
 
 libfoo_la_SOURCES = foo.c
 libfoo_la_LIBADD = $(LIBM)
+libfoo_la_LDFLAGS = -no-undefined
 
 noinst_HEADERS = foo.h
 
index 08eb0895cbd8a6499d640b07b6f853aa05e51adb..02340faf66f304d66e2f5b4d6aec3b2294a1eee9 100644 (file)
@@ -8,14 +8,14 @@ EXTRA_DIST = acinclude.m4
 lib_LTLIBRARIES = libhello.la
 libhello_la_SOURCES = hello.c foo.c
 libhello_la_LIBADD = $(LIBM)
-libhello_la_LDFLAGS = -version-info 3:12:1
+libhello_la_LDFLAGS = -no-undefined -version-info 3:12:1
 
 include_HEADERS = foo.h
 
 if BINARY_HELLDL
 BUILD_helldl = helldl
 else
-BUILD_helldl = 
+BUILD_helldl =
 endif
 
 bin_PROGRAMS = hell hell_static $(BUILD_helldl)
@@ -125,16 +125,20 @@ libhell0_a_SOURCES = hello.c foo.c
 EXTRA_LTLIBRARIES = libhell1.la libhell2.la
 libhell1_la_SOURCES = hell1.c
 libhell1_la_LIBADD = -L. -lhell0
-libhell1_la_LDFLAGS = -rpath $(libdir)
+libhell1_la_LDFLAGS = -no-undefined -rpath $(libdir)
 libhell1_la_DEPENDENCIES = libhell0.a
 libhell2_la_SOURCES = hell2.c
 libhell2_la_LIBADD = -L. -lhell0
-libhell2_la_LDFLAGS = -rpath $(libdir)
+libhell2_la_LDFLAGS = -no-undefined -rpath $(libdir)
 libhell2_la_DEPENDENCIES = libhell0.a
 EXTRA_PROGRAMS = hell0
 hell0_SOURCES = main.c
 hell0_LDADD = libhell1.la libhell2.la $(LIBM)
 
-CLEANFILES += $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS)
+# 'hell0' in EXTRA_PROGRAMS gets translated to 'hell0.exe'; but we
+# must explicitly list the wrapper script 'hell0'.  (bin_PROGRAMS
+# are handled seamlessly by automake rules; the extra step is only
+# necessary for EXTRA_PROGRAMS)
+CLEANFILES += $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) hell0
 
 deplibs-check: hell0$(EXEEXT)
index 2e2d37cb9fcb200fa543e015d69d9d47afe386c9..00d99835deb2c59b8cdb85b5f77df85db4b2e054 100644 (file)
@@ -6,3 +6,4 @@ INCLUDES = -I$(top_srcdir)
 
 lib_LTLIBRARIES = libl1.la
 libl1_la_SOURCES = l1.c l1.h
+libl1_la_LDFLAGS = -no-undefined
index 63924398bf4adc8b98fd72dd1c147076fe4d9334..d3255b9c90611e922c264d3f75a1f373bf9dc42a 100644 (file)
@@ -6,4 +6,5 @@ INCLUDES = -I$(top_srcdir)
 
 lib_LTLIBRARIES = libl2.la
 libl2_la_SOURCES = l2.c l2.h
+libl2_la_LDFLAGS = -no-undefined
 libl2_la_LIBADD = $(top_builddir)/l1/libl1.la
index 873fca7e702b9f4a5995d487bdfc8df589d61e1f..3a71e807f71c2927c53708f9c841317aa46c59fa 100644 (file)
@@ -8,4 +8,5 @@ extradir = $(libdir)/extra
 
 lib_LTLIBRARIES = libl3.la
 libl3_la_SOURCES = l3.c l3.h
+libl3_la_LDFLAGS = -no-undefined
 libl3_la_LIBADD = $(top_builddir)/l1/libl1.la $(top_builddir)/l2/libl2.la
index 133e9d2d43fd60c4b5a646f2a8c0cceb49c33c22..0dd4acfbfb005c5584270d32880a553d13ec53f5 100644 (file)
@@ -6,4 +6,5 @@ INCLUDES = -I$(top_srcdir)
 
 lib_LTLIBRARIES = libl4.la
 libl4_la_SOURCES = l4.c l4.h
+libl4_la_LDFLAGS = -no-undefined
 libl4_la_LIBADD = $(top_builddir)/l3/libl3.la $(LIBM)
index 326e690ec22dbf36e770bd923f7e1ba9c02d8604..40b8bcec60833c351a05e4dbd961ce77ca288de5 100644 (file)
@@ -911,11 +911,7 @@ lt_estrdup (str)
 /* --- DLOPEN() INTERFACE LOADER --- */
 
 
-/* Older Cygwin dlopen implementations print a spurious error message to
-   stderr if the call to LoadLibrary() fails for any reason.  We can
-   mitigate this by not using the Cygwin implementation, and falling
-   back to our own LoadLibrary() wrapper. */
-#if HAVE_LIBDL && !defined(__CYGWIN__)
+#if HAVE_LIBDL
 
 /* dynamic linking with dlopen/dlsym */
 
@@ -1734,7 +1730,7 @@ lt_dlinit ()
       handles = 0;
       user_search_path = 0; /* empty search path */
 
-#if HAVE_LIBDL && !defined(__CYGWIN__)
+#if HAVE_LIBDL
       errors += lt_dlloader_add (lt_dlloader_next (0), &sys_dl, "dlopen");
 #endif
 #if HAVE_SHL_LOAD
index 0fa0c1730be64cc3317e923c9eb1eff323921f29..e0d35df6f731cec45988be2cacd9dc47ad052164 100644 (file)
@@ -2584,8 +2584,7 @@ case $host_os in
     # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
     # as there is no search path for DLLs.
     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
 
     if $LD --help 2>&1 | egrep 'auto-import' > /dev/null; then
       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
@@ -3164,7 +3163,7 @@ if AC_TRY_EVAL(ac_compile); then
   done
 
   # Clean up.
-  rm -f a.out
+  rm -f a.out a.exe
 else
   echo "libtool.m4: error: problem compiling C++ test program"
 fi
@@ -4496,8 +4495,7 @@ EOF
       # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
       # as there is no search path for DLLs.
       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
 
       if $LD --help 2>&1 | egrep 'auto-import' > /dev/null; then
         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
@@ -4797,7 +4795,6 @@ EOF
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
       # Tell ltmain to make .lib files, not .a files.
       libext=lib
       # FIXME: Setting linknames here is a bad hack.
index fe8866e3eb153f52b11c299a8156f221ed1be8f4..2141e0d2f2bd677fbc1eafecb3f70a96d656e5cd 100644 (file)
@@ -10,7 +10,7 @@ lib_LTLIBRARIES = libsub.la foo1.la libfoo2.la
 
 foo1_la_SOURCES = foo1.c
 foo1_la_LIBADD = $(LIBM) libsub.la
-foo1_la_LDFLAGS = -module -avoid-version
+foo1_la_LDFLAGS = -no-undefined -module -avoid-version
 
 libfoo2_la_SOURCES = foo2.c
 libfoo2_la_LIBADD = $(LIBM) libsub.la
index a3537c00c305a24cfb72675b2835ed77640044e5..204be61c8595a4a4cc219794d525e27dcadd2afb 100644 (file)
@@ -8,17 +8,17 @@ EXTRA_DIST = acinclude.m4
 lib_LTLIBRARIES = libhello.la
 libhello_la_SOURCES = longer_file_name_hello.c longer_file_name_foo.c longer_file_name_foo2.c
 libhello_la_LIBADD = $(LIBM)
-libhello_la_LDFLAGS = -version-info 3:12:1
+libhello_la_LDFLAGS = -no-undefined -version-info 3:12:1
 
 include_HEADERS = foo.h
 
 if BINARY_HELLDL
 BUILD_helldl = helldl
 else
-BUILD_helldl = 
+BUILD_helldl =
 endif
 
-bin_PROGRAMS = hell hell.static $(BUILD_helldl)
+bin_PROGRAMS = hell hell_static $(BUILD_helldl)
 
 # Build hell from longer_file_name_main.c and libhello.la
 hell_SOURCES = longer_file_name_main.c
@@ -125,16 +125,20 @@ libhell0_a_SOURCES = longer_file_name_hello.c longer_file_name_foo.c
 EXTRA_LTLIBRARIES = libhell1.la libhell2.la
 libhell1_la_SOURCES = longer_file_name_hell1.c
 libhell1_la_LIBADD = -L. -lhell0
-libhell1_la_LDFLAGS = -rpath $(libdir)
+libhell1_la_LDFLAGS = -no-undefined -rpath $(libdir)
 libhell1_la_DEPENDENCIES = libhell0.a
 libhell2_la_SOURCES = longer_file_name_hell2.c
 libhell2_la_LIBADD = -L. -lhell0
-libhell2_la_LDFLAGS = -rpath $(libdir)
+libhell2_la_LDFLAGS = -no-undefined -rpath $(libdir)
 libhell2_la_DEPENDENCIES = libhell0.a
 EXTRA_PROGRAMS = hell0
 hell0_SOURCES = longer_file_name_main.c
 hell0_LDADD = libhell1.la libhell2.la $(LIBM)
 
-CLEANFILES += $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS)
+# 'hell0' in EXTRA_PROGRAMS gets translated to 'hell0.exe'; but we
+# must explicitly list the wrapper script 'hell0'.  (bin_PROGRAMS
+# are handled seamlessly by automake rules; the extra step is only
+# necessary for EXTRA_PROGRAMS)
+CLEANFILES += $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) hell0
 
 deplibs-check: hell0
index 9baf15b0eb2a8b5593ac7fcefdbeac08c2870763..db5ae4aa50fedf718964ed8efe2aea7d283210e6 100644 (file)
@@ -10,10 +10,12 @@ noinst_LTLIBRARIES = libfoo.la
 lib_LTLIBRARIES = libbaz.la
 
 libfoo_la_SOURCES = foo.cpp
+libfoo_la_LDFLAGS = -no-undefined
 libfoo_la_LIBADD = $(LIBM)
 
 # Test some of the ILD support when using tagged configurations.
 libbaz_la_SOURCES = baz.cpp
+libbaz_la_LDFLAGS = -no-undefined
 libbaz_la_LIBADD = libfoo.la
 
 noinst_HEADERS = foo.h baz.h
index 38b44ab26c6f9703ac7584cb5edcf4319ec0a7b1..6c38aae7253a358fb701fd1f4531f6043b7e4c8c 100755 (executable)
@@ -20,9 +20,9 @@ fi
 echo "Executing uninstalled programs in ../pdemo"
 
 status=0
-if ../pdemo/hell.static| grep 'Welcome to GNU Hell'; then :
+if ../pdemo/hell-static| grep 'Welcome to GNU Hell'; then :
 else
-  echo "$0: cannot execute ../pdemo/hell.static" 1>&2
+  echo "$0: cannot execute ../pdemo/hell_static" 1>&2
   status=1
 fi
 
index 0c54ec70c4d8fd2464c364185c4ba0c05442c9af..a23d8a57867bf2837d2752ac2a62e921fac438e5 100755 (executable)
@@ -25,9 +25,9 @@ $make install || exit 1
 
 echo "= Executing installed programs"
 status=0
-if $prefix/bin/hell.static | grep 'Welcome to GNU Hell'; then :
+if $prefix/bin/hell_static | grep 'Welcome to GNU Hell'; then :
 else
-  echo "$0: cannot execute $prefix/bin/hell.static" 1>&2
+  echo "$0: cannot execute $prefix/bin/hell_static" 1>&2
   status=1
 fi