[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] libtool on cygwin [2/4]: fix building modules
From: |
Charles Wilson |
Subject: |
[PATCH] libtool on cygwin [2/4]: fix building modules |
Date: |
Wed, 05 Nov 2003 05:14:52 -0500 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 |
$global_symbol_list gives this when applied to nm -B of static lib ("good"):
D _m4_LTX_m4_builtin_table m4_LTX_m4_builtin_table
T _m4_LTX_m4_dump_symbols m4_LTX_m4_dump_symbols
T _m4_LTX_m4_expand_ranges m4_LTX_m4_expand_ranges
T _m4_LTX_m4_init_module m4_LTX_m4_init_module
T _m4_LTX_m4_set_sysval m4_LTX_m4_set_sysval
T _m4_LTX_m4_sysval_flush m4_LTX_m4_sysval_flush
D _m4_sysval m4_sysval
But it gives this when applied to nm -B of import lib ("bad"):
I _m4_0_dll_iname m4_0_dll_iname
I __head_m4_0_dll _head_m4_0_dll
I __imp__m4_sysval _imp__m4_sysval
I __nm__m4_sysval _nm__m4_sysval
I __imp__m4_LTX_m4_sysval_flush _imp__m4_LTX_m4_sysval_flush
T _m4_LTX_m4_sysval_flush m4_LTX_m4_sysval_flush
I __imp__m4_LTX_m4_set_sysval _imp__m4_LTX_m4_set_sysval
T _m4_LTX_m4_set_sysval m4_LTX_m4_set_sysval
I __imp__m4_LTX_m4_init_module _imp__m4_LTX_m4_init_module
T _m4_LTX_m4_init_module m4_LTX_m4_init_module
I __imp__m4_LTX_m4_expand_ranges _imp__m4_LTX_m4_expand_ranges
T _m4_LTX_m4_expand_ranges m4_LTX_m4_expand_ranges
I __imp__m4_LTX_m4_dump_symbols _imp__m4_LTX_m4_dump_symbols
T _m4_LTX_m4_dump_symbols m4_LTX_m4_dump_symbols
I __imp__m4_LTX_m4_builtin_table _imp__m4_LTX_m4_builtin_table
I __nm__m4_LTX_m4_builtin_table _nm__m4_LTX_m4_builtin_table
When building --enable-shared --disable-static, then all you HAVE is the
import lib and you're stuck with the "bad" output above.
When given the "good" output above, current $export_symbols_cmds will
produce this output:
m4_LTX_m4_builtin_table DATA
m4_LTX_m4_dump_symbols
m4_LTX_m4_expand_ranges
m4_LTX_m4_init_module
m4_LTX_m4_set_sysval
m4_LTX_m4_sysval_flush
m4_sysval DATA
But when given the "bad" output it produces:
_head_m4_0_dll
_imp__m4_LTX_m4_builtin_table
_imp__m4_LTX_m4_dump_symbols
_imp__m4_LTX_m4_expand_ranges
_imp__m4_LTX_m4_init_module
_imp__m4_LTX_m4_set_sysval
_imp__m4_LTX_m4_sysval_flush
_imp__m4_sysval
_nm__m4_LTX_m4_builtin_table
_nm__m4_sysval
m4_0_dll_iname
m4_LTX_m4_dump_symbols
m4_LTX_m4_expand_ranges
m4_LTX_m4_init_module
m4_LTX_m4_set_sysval
m4_LTX_m4_sysval_flush
With the attached patch, both "good" and "bad" $global_symbol_list
result in the proper export_symbol list:
m4_LTX_m4_builtin_table DATA
m4_LTX_m4_dump_symbols
m4_LTX_m4_expand_ranges
m4_LTX_m4_init_module
m4_LTX_m4_set_sysval
m4_LTX_m4_sysval_flush
m4_sysval DATA
--
Chuck
2003-11-05 Charles Wilson <address@hidden>
* m4/libtool.m4: when extracting symbols from an
import lib (occurs if --enable-shared --disable-static),
the output of $global_symbol_pipe is not the same as
when extracting from a static library (the default case).
Add extra filters $export_symbols_cmds to process this
sort of output in addition to 'normal' static-lib output.
Index: m4/libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/m4/libtool.m4,v
retrieving revision 1.9
diff -u -r1.9 libtool.m4
--- m4/libtool.m4 30 Oct 2003 14:28:00 -0000 1.9
+++ m4/libtool.m4 3 Nov 2003 16:35:13 -0000
@@ -5080,7 +5080,7 @@
_LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
;;
cygwin* | mingw*)
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience |
$global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' |
$SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience |
$global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' |
$SED -e '\''/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/'\'' | $SED -e
'\''/^I /d'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq >
$export_symbols'
;;
*)
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience |
$global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- [PATCH] libtool on cygwin [2/4]: fix building modules,
Charles Wilson <=