mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-01-12 14:06:37 +08:00
* ltconfig.in (export_symbols_cmds): Add $convenience.
(cygwin, export_symbols_cmds): Ditto. * ltmain.in: Generate export symbol list before expanding convenience libraries, to avoid passing whole_archive_flag_spec to $NM. Reported by Godmar Back <gback@cs.utah.edu>
This commit is contained in:
parent
6b6c388699
commit
ec523ab5d2
@ -1,3 +1,12 @@
|
||||
1999-05-27 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* ltconfig.in (export_symbols_cmds): Add $convenience.
|
||||
(cygwin, export_symbols_cmds): Ditto.
|
||||
* ltmain.in: Generate export symbol list before expanding
|
||||
convenience libraries, to avoid passing whole_archive_flag_spec to
|
||||
$NM.
|
||||
Reported by Godmar Back <gback@cs.utah.edu>
|
||||
|
||||
1999-05-27 David Jones <jones@mosaid.com>
|
||||
|
||||
* libltdl/ltdl.c (LTDL_BIND_FLAGS): Remove BIND_VERBOSE, to avoid
|
||||
|
@ -1051,7 +1051,7 @@ hardcode_shlibpath_var=unsupported
|
||||
runpath_var=
|
||||
link_all_deplibs=unknown
|
||||
always_export_symbols=no
|
||||
export_symbols_cmds='$NM $libobjs | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
# include_expsyms should be a list of space-separated symbols to be *always*
|
||||
# included in the symbol list
|
||||
include_expsyms=
|
||||
@ -1145,7 +1145,7 @@ EOF
|
||||
export_symbols_cmds='rm -f $objdir/$soname-ltdll.c~
|
||||
sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~
|
||||
(cd $objdir && $CC -c $soname-ltdll.c)~
|
||||
$DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs~
|
||||
$DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~
|
||||
sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ;.*//" < $objdir/$soname-def > $export_symbols'
|
||||
|
||||
archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~
|
||||
|
54
ltmain.in
54
ltmain.in
@ -2196,6 +2196,33 @@ EOF
|
||||
# Use standard objects if they are pic
|
||||
test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
|
||||
|
||||
# Prepare the list of exported symbols
|
||||
if test -z "$export_symbols"; then
|
||||
if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
|
||||
$show "generating symbol list for \`$libname.la'"
|
||||
export_symbols="$output_objdir/$libname.exp"
|
||||
$run $rm $export_symbols
|
||||
eval cmds=\"$export_symbols_cmds\"
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
|
||||
for cmd in $cmds; do
|
||||
IFS="$save_ifs"
|
||||
$show "$cmd"
|
||||
$run eval "$cmd" || exit $?
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
if test -n "$export_symbols_regex"; then
|
||||
$show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
|
||||
$run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
|
||||
$show "$mv \"${export_symbols}T\" \"$export_symbols\""
|
||||
$run eval '$mv "${export_symbols}T" "$export_symbols"'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$export_symbols" && test -n "$include_expsyms"; then
|
||||
$run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
|
||||
fi
|
||||
|
||||
if test -n "$whole_archive_flag_spec"; then
|
||||
if test -n "$convenience"; then
|
||||
eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
|
||||
@ -2241,33 +2268,6 @@ EOF
|
||||
linker_flags="$linker_flags $flag"
|
||||
fi
|
||||
|
||||
# Prepare the list of exported symbols
|
||||
if test -z "$export_symbols"; then
|
||||
if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
|
||||
$show "generating symbol list for \`$libname.la'"
|
||||
export_symbols="$output_objdir/$libname.exp"
|
||||
$run $rm $export_symbols
|
||||
eval cmds=\"$export_symbols_cmds\"
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS='~'
|
||||
for cmd in $cmds; do
|
||||
IFS="$save_ifs"
|
||||
$show "$cmd"
|
||||
$run eval "$cmd" || exit $?
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
if test -n "$export_symbols_regex"; then
|
||||
$show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
|
||||
$run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
|
||||
$show "$mv \"${export_symbols}T\" \"$export_symbols\""
|
||||
$run eval '$mv "${export_symbols}T" "$export_symbols"'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$export_symbols" && test -n "$include_expsyms"; then
|
||||
$run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
|
||||
fi
|
||||
|
||||
# Do each of the archive commands.
|
||||
if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
|
||||
eval cmds=\"$archive_expsym_cmds\"
|
||||
|
Loading…
Reference in New Issue
Block a user