Hello Charles, Please accept my apologies for the delay.
* Charles Wilson wrote on Sun, Feb 18, 2007 at 08:06:21PM CET: > Ralf Wildenhues wrote: > > >I think the patch below should work, and be platform-agnostic. WDYT? > >OK for branch-1-5 and HEAD alike? It fixes the similar failure there. > > Hmm -- seems ok in principle. I don't know if the end behavior is > exactly the same, between ld's --export-all-symbols and libtool's > -export-symbols-regex ".*". I've attached the exports list from my > cygmlib-0.dll (taken from the output of objdump -p). How does yours > compare? It's identical. > > * mdemo/Makefile.am (libmlib_la_LDFLAGS): Add -export-symbols-regex > > ".*" because the convenience libltdl uses export markers and thus > > turns off autoexport on w32. Fixes test failures for Cygwin and > > MinGW. Bug analysis by Charles Wilson. > > Seems OK, if there are no "important" differences between the actual > exports in your cygmlib-0.dll and mine. Yes. My bigger worries with this patch were that it could regress on some other, unrelated platform. I've checked the systems I have access to now, and all seem to do fine. So I have applied the change as below. Thanks also for the documentation suggestion. Slightly rewritten suggestion to come up. Cheers, Ralf HEAD: * tests/mdemo/Makefile.am (libmlib_la_LDFLAGS): Add `-export-symbols-regex ".*"' because the convenience libltdl uses export markers and thus turns off autoexport on w32. Fixes test failures for Cygwin and MinGW. Bug analysis by Charles Wilson. Index: tests/mdemo/Makefile.am =================================================================== RCS file: /cvsroot/libtool/libtool/tests/mdemo/Makefile.am,v retrieving revision 1.9 diff -u -r1.9 Makefile.am --- tests/mdemo/Makefile.am 26 Feb 2007 07:44:25 -0000 1.9 +++ tests/mdemo/Makefile.am 18 Mar 2007 18:42:04 -0000 @@ -1,6 +1,6 @@ ## Makefile.am -- Process this file with automake to produce Makefile.in ## -## Copyright (C) 2003, 2004, 2005 Free Software Foundation +## Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -35,9 +35,12 @@ libsub_la_SOURCES = sub.c libsub_la_LDFLAGS = -no-undefined +## Use -export-symbols-regex here explicitly because libltdl marks +## its exported symbols, and we use libltdl as a convenience archive. +## Thus, on w32, auto-exporting is turned off. libmlib_la_SOURCES = mlib.c libmlib_la_LIBADD = @LIBLTDL@ "-dlopen" foo1.la "-dlopen" libfoo2.la -libmlib_la_LDFLAGS = -no-undefined +libmlib_la_LDFLAGS = -no-undefined -export-symbols-regex ".*" libmlib_la_DEPENDENCIES = @LIBLTDL@ libsub.la foo1.la libfoo2.la noinst_HEADERS = foo.h branch-1-5: * mdemo/Makefile.am (libmlib_la_LDFLAGS): Add `-export-symbols-regex ".*"' because the convenience libltdl uses export markers and thus turns off autoexport on w32. Fixes test failures for Cygwin and MinGW. Bug analysis by Charles Wilson. Index: mdemo/Makefile.am =================================================================== RCS file: /cvsroot/libtool/libtool/mdemo/Attic/Makefile.am,v retrieving revision 1.46.2.2 diff -u -r1.46.2.2 Makefile.am --- mdemo/Makefile.am 3 Feb 2006 09:37:34 -0000 1.46.2.2 +++ mdemo/Makefile.am 18 Mar 2007 18:41:43 -0000 @@ -19,9 +19,12 @@ libsub_la_SOURCES = sub.c libsub_la_LDFLAGS = -no-undefined +## Use -export-symbols-regex here explicitly because libltdl marks +## its exported symbols, and we use libltdl as a convenience archive. +## Thus, on w32, auto-exporting is turned off. libmlib_la_SOURCES = mlib.c libmlib_la_LIBADD = @LIBLTDL@ "-dlopen" foo1.la "-dlopen" libfoo2.la -libmlib_la_LDFLAGS = -no-undefined +libmlib_la_LDFLAGS = -no-undefined -export-symbols-regex ".*" libmlib_la_DEPENDENCIES = @LIBLTDL@ libsub.la foo1.la libfoo2.la noinst_HEADERS = foo.h