After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 163136 - [CYGWIN] Distributed libtool symbol export broken
[CYGWIN] Distributed libtool symbol export broken
Status: RESOLVED NOTGNOME
Product: glib
Classification: Platform
Component: general
2.6.x
Other Windows
: Normal normal
: ---
Assigned To: gtkdev
gtkdev
Depends on:
Blocks:
 
 
Reported: 2005-01-06 15:58 UTC by Roger Leigh
Modified: 2011-02-18 16:14 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8


Attachments
ltmain-cygwin.diff (10.75 KB, patch)
2005-01-11 11:44 UTC, Roger Leigh
none Details | Review

Description Roger Leigh 2005-01-06 15:58:08 UTC
The distributed libtool in glib-2.6.0 does not create a working symbol export
file (glib/.libs/libglib-2.0.exp).  This is because it does not parse the nm
output properly, resulting in entries like this:

  R symbolname

rather than

  symbolname DATA

This patch fixes it:

--- libtool.broken      2005-01-06 15:27:35.000000000 +0000
+++ libtool     2005-01-06 15:28:19.000000000 +0000
@@ -337,7 +337,7 @@
 always_export_symbols=no

 # The commands to list exported symbols.
-export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe |
\$SED -e '/^[BCDGS] /s/.* \\\\([^ ]*\\\\)/\\\\1 DATA/' | \$SED -e '/^[AITW]
/s/.* //' | sort | uniq > \$export_symbols"
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe |
\$SED -e '/^[BCDGRS] /s/.* \\\\([^ ]*\\\\)/\\\\1 DATA/' | \$SED -e '/^[AITW]
/s/.* //' | sort | uniq > \$export_symbols"

 # The commands to extract the exported symbol list from a shared archive.
 extract_expsyms_cmds=""

Notice that before it was not looking only in .bss, not .rodata (or the Win32
equivalent).  The distributed libtool is this:

  ltmain.sh (GNU libtool) 1.5.10 (1.1220.2.131 2004/09/19 12:46:56)

when I re-libtoolised and ran aclocal/automake/autoconf/autoheader, the problem
went away, even though the Cygwin libtool is the same version.  Perhaps the
libtool version on the glib packager's machine is buggy?


Regards,
Roger
Comment 1 Tor Lillqvist 2005-01-09 19:01:58 UTC
Reassigning. Not a Win32 component problem.
Comment 2 Gerrit P. Haase 2005-01-10 17:21:21 UTC
Can you please send a diff of the glib ltmain.sh and the Cygwin
/usr/autotool/devel/share/libtool/ltmain.sh?

Gerrit
Comment 3 Gerrit P. Haase 2005-01-10 17:26:19 UTC
BTW, this affects gcc versions >= gcc-3.3.3 which is the default Cygwin compiler.

And the Cygwin version of libtool is patched to work around this problem.


Gerrit
Comment 4 Roger Leigh 2005-01-11 11:44:44 UTC
Created attachment 35819 [details] [review]
ltmain-cygwin.diff

This shows the differences between the glib libtool and the Cygwin libtool.  It
looks like there are Cygwin-specific changes which have not been incorporated
upstream.

Have these changes been sent to the libtool developers?


Regards,
Roger
Comment 5 Roger Leigh 2005-01-13 09:31:48 UTC
This also affects GTK+ 2.6.0 and 2.6.1.
Comment 6 Yaakov Selkowitz 2006-12-27 07:38:12 UTC
Cygwin libtool does incorporate specific patches, so that may be causing this.  In any event, running autoreconf or its equivalent to pull in our libtool is becoming standard procedure, so this is irrelevant.

FWIW I'm the current GNOME maintainer for Cygwin.  IMO can be RESOLVED NOTGNOME.