mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-27 06:09:57 +08:00
[cygwin|mingw] fix dlpreopen with --disable-static
* libltdl/config/general.m4sh (func_tr_sh): New function. * libltdl/config/ltmain.m4sh (func_generate_dlsyms) [cygwin|mingw]: Obtain DLL name corresponding to import library by using value stored in unique variable libfile_$(transliterated implib name). If that fails, use $sharedlib_from_linklib_cmd to extract DLL name from import library directly. Also, properly extract dlsyms from the import library. (func_mode_link) [cygwin|mingw]: Prefer to dlpreopen DLLs over static libs when both are available. When dlpreopening DLLs, use linklib (that is, import lib) as dlpreopen file, rather than DLL. Store name of associated la file in unique variable libfile_$(transliterated implib name) for later use. (func_win32_libid): Accomodate pei-i386 import libs as well as pe-i386. (func_cygming_dll_for_implib): New function. (func_cygming_dll_for_implib_fallback): New function. (func_cygming_dll_for_implib_fallback_core): New function. (func_cygming_gnu_implib_p): New function. (func_cygming_ms_implib_p): New function. * libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust sed expressions for lt_cv_sys_global_symbol_to_c_name_address and lt_cv_sys_global_symbol_to_c_name_address_lib_prefix as trailing space after module name is optional. (_LT_LINKER_SHLIBS) [cygwin|mingw][C++]: Set exclude_expsyms correctly for $host. Simplify regular expression in export_symbols_cmds. (_LT_LINKER_SHLIBS) [cygwin|mingw|pw32][C]: Set exclude_expsyms correctly for $host. Enable export_symbols_cmds to identify DATA exports by _nm_ prefix. (_LT_CHECK_SHAREDLIB_FROM_LINKLIB): New macro sets sharedlib_from_linklib_cmd variable. (_LT_DECL_DLLTOOL): New macro ensures DLLTOOL is always set.
This commit is contained in:
parent
b28132eaba
commit
e83da49a1f
37
ChangeLog
37
ChangeLog
@ -1,3 +1,40 @@
|
||||
2010-07-07 Charles Wilson <libtool@cwilson.fastmail.fm>
|
||||
|
||||
[cygwin|mingw] fix dlpreopen with --disable-static
|
||||
* libltdl/config/general.m4sh (func_tr_sh): New function.
|
||||
* libltdl/config/ltmain.m4sh (func_generate_dlsyms) [cygwin|mingw]:
|
||||
Obtain DLL name corresponding to import library by using value
|
||||
stored in unique variable libfile_$(transliterated implib name).
|
||||
If that fails, use $sharedlib_from_linklib_cmd to extract DLL
|
||||
name from import library directly. Also, properly extract dlsyms
|
||||
from the import library.
|
||||
(func_mode_link) [cygwin|mingw]: Prefer to dlpreopen DLLs
|
||||
over static libs when both are available. When dlpreopening
|
||||
DLLs, use linklib (that is, import lib) as dlpreopen file,
|
||||
rather than DLL. Store name of associated la file in
|
||||
unique variable libfile_$(transliterated implib name)
|
||||
for later use.
|
||||
(func_win32_libid): Accomodate pei-i386 import libs
|
||||
as well as pe-i386.
|
||||
(func_cygming_dll_for_implib): New function.
|
||||
(func_cygming_dll_for_implib_fallback): New function.
|
||||
(func_cygming_dll_for_implib_fallback_core): New function.
|
||||
(func_cygming_gnu_implib_p): New function.
|
||||
(func_cygming_ms_implib_p): New function.
|
||||
* libltdl/m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): Adjust sed
|
||||
expressions for lt_cv_sys_global_symbol_to_c_name_address and
|
||||
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
|
||||
as trailing space after module name is optional.
|
||||
(_LT_LINKER_SHLIBS) [cygwin|mingw][C++]:
|
||||
Set exclude_expsyms correctly for $host. Simplify regular
|
||||
expression in export_symbols_cmds.
|
||||
(_LT_LINKER_SHLIBS) [cygwin|mingw|pw32][C]: Set exclude_expsyms
|
||||
correctly for $host. Enable export_symbols_cmds to identify
|
||||
DATA exports by _nm_ prefix.
|
||||
(_LT_CHECK_SHAREDLIB_FROM_LINKLIB): New macro sets
|
||||
sharedlib_from_linklib_cmd variable.
|
||||
(_LT_DECL_DLLTOOL): New macro ensures DLLTOOL is always set.
|
||||
|
||||
2010-07-05 Peter Rosin <peda@lysator.liu.se>
|
||||
|
||||
* tests/export.at [MSVC]: dllimport all imported variables.
|
||||
|
@ -594,4 +594,21 @@ func_show_eval_locale ()
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# func_tr_sh
|
||||
# Turn $1 into a string suitable for a shell variable name.
|
||||
# Result is stored in $func_tr_sh_result. All characters
|
||||
# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
|
||||
# if $1 begins with a digit, a '_' is prepended as well.
|
||||
func_tr_sh ()
|
||||
{
|
||||
case $1 in
|
||||
[0-9]* | *[!a-zA-Z0-9_]*)
|
||||
func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
|
||||
;;
|
||||
* )
|
||||
func_tr_sh_result=$1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
]])
|
||||
|
@ -1987,10 +1987,49 @@ extern \"C\" {
|
||||
func_verbose "extracting global C symbols from \`$dlprefile'"
|
||||
func_basename "$dlprefile"
|
||||
name="$func_basename_result"
|
||||
$opt_dry_run || {
|
||||
eval '$ECHO ": $name " >> "$nlist"'
|
||||
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
|
||||
}
|
||||
case $host in
|
||||
*cygwin* | *mingw* | *cegcc* )
|
||||
# if an import library, we need to obtain dlname
|
||||
if func_win32_import_lib_p "$dlprefile"; then
|
||||
func_tr_sh "$dlprefile"
|
||||
eval "curr_lafile=\$libfile_$func_tr_sh_result"
|
||||
dlprefile_dlbasename=""
|
||||
if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
|
||||
# Use subshell, to avoid clobbering current variable values
|
||||
dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
|
||||
if test -n "$dlprefile_dlname" ; then
|
||||
func_basename "$dlprefile_dlname"
|
||||
dlprefile_dlbasename="$func_basename_result"
|
||||
else
|
||||
# no lafile. user explicitly requested -dlpreopen <import library>.
|
||||
$sharedlib_from_linklib "$dlprefile"
|
||||
dlprefile_dlbasename=$sharedlib_from_linklib_result
|
||||
fi
|
||||
fi
|
||||
$opt_dry_run || {
|
||||
if test -n "$dlprefile_dlbasename" ; then
|
||||
eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
|
||||
else
|
||||
func_warning "Could not compute DLL name from $name"
|
||||
eval '$ECHO ": $name " >> "$nlist"'
|
||||
fi
|
||||
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe |
|
||||
$SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
|
||||
}
|
||||
else # not an import lib
|
||||
$opt_dry_run || {
|
||||
eval '$ECHO ": $name " >> "$nlist"'
|
||||
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
|
||||
}
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
$opt_dry_run || {
|
||||
eval '$ECHO ": $name " >> "$nlist"'
|
||||
eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
|
||||
}
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
$opt_dry_run || {
|
||||
@ -2195,6 +2234,129 @@ func_win32_libid ()
|
||||
$ECHO "$win32_libid_type"
|
||||
}
|
||||
|
||||
# func_cygming_dll_for_implib ARG
|
||||
#
|
||||
# Platform-specific function to extract the
|
||||
# name of the DLL associated with the specified
|
||||
# import library ARG.
|
||||
# Invoked by eval'ing the libtool variable
|
||||
# $sharedlib_from_linklib_cmd
|
||||
# Result is available in the variable
|
||||
# $sharedlib_from_linklib_result
|
||||
func_cygming_dll_for_implib ()
|
||||
{
|
||||
$opt_debug
|
||||
sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
|
||||
}
|
||||
|
||||
# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
|
||||
#
|
||||
# The is the core of a fallback implementation of a
|
||||
# platform-specific function to extract the name of the
|
||||
# DLL associated with the specified import library LIBNAME.
|
||||
#
|
||||
# SECTION_NAME is either .idata$6 or .idata$7, depending
|
||||
# on the platform and compiler that created the implib.
|
||||
#
|
||||
# Echos the name of the DLL associated with the
|
||||
# specified import library.
|
||||
func_cygming_dll_for_implib_fallback_core ()
|
||||
{
|
||||
$opt_debug
|
||||
match_literal=`$ECHO "$1" | $SED 's/[].[^$\\*|]/\\\\&/g'`
|
||||
$OBJDUMP -s --section "$1" "$2" 2>/dev/null |
|
||||
$SED '/^Contents of section '"$match_literal"':/{
|
||||
# Place marker at beginning of archive member dllname section
|
||||
s/.*/====MARK====/
|
||||
p
|
||||
d
|
||||
}
|
||||
# These lines can sometimes be longer than 43 characters, but
|
||||
# are always uninteresting
|
||||
/:[ ]*file format pe[i]\{,1\}-/d
|
||||
/^In archive [^:]*:/d
|
||||
# Ensure marker is printed
|
||||
/^====MARK====/p
|
||||
# Remove all lines with less than 43 characters
|
||||
/^.\{43\}/!d
|
||||
# From remaining lines, remove first 43 characters
|
||||
s/^.\{43\}//' |
|
||||
$SED -n '
|
||||
# Join marker and all lines until next marker into a single line
|
||||
/^====MARK====/ b para
|
||||
H
|
||||
$ b para
|
||||
b
|
||||
:para
|
||||
x
|
||||
s/\n//g
|
||||
# Remove the marker
|
||||
s/^====MARK====//
|
||||
# Remove trailing dots and whitespace
|
||||
s/[\. \t]*$//
|
||||
# Print
|
||||
/./p' |
|
||||
# we now have a list, one entry per line, of the stringified
|
||||
# contents of the appropriate section of all members of the
|
||||
# archive which possess that section. Heuristic: eliminate
|
||||
# all those which have a first or second character that is
|
||||
# a '.' (that is, objdump's representation of an unprintable
|
||||
# character.) This should work for all archives with less than
|
||||
# 0x302f exports -- but will fail for DLLs whose name actually
|
||||
# begins with a literal '.' or a single character followed by
|
||||
# a '.'.
|
||||
#
|
||||
# Of those that remain, print the first one.
|
||||
$SED -e '/^\./d;/^.\./d;q'
|
||||
}
|
||||
|
||||
# func_cygming_gnu_implib_p ARG
|
||||
# This predicate returns with zero status (TRUE) if
|
||||
# ARG is a GNU/binutils-style import library. Returns
|
||||
# with nonzero status (FALSE) otherwise.
|
||||
func_cygming_gnu_implib_p ()
|
||||
{
|
||||
$opt_debug
|
||||
func_cygming_gnu_implib_tmp=`$NM $1 | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
|
||||
test -n "$func_cygming_gnu_implib_tmp"
|
||||
}
|
||||
|
||||
# func_cygming_ms_implib_p ARG
|
||||
# This predicate returns with zero status (TRUE) if
|
||||
# ARG is an MS-style import library. Returns
|
||||
# with nonzero status (FALSE) otherwise.
|
||||
func_cygming_ms_implib_p ()
|
||||
{
|
||||
$opt_debug
|
||||
func_cygming_ms_implib_tmp=`$NM $1 | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
|
||||
test -n "$func_cygming_ms_implib_tmp"
|
||||
}
|
||||
|
||||
# func_cygming_dll_for_implib_fallback ARG
|
||||
# Platform-specific function to extract the
|
||||
# name of the DLL associated with the specified
|
||||
# import library ARG.
|
||||
#
|
||||
# This fallback implementation is for use when $DLLTOOL
|
||||
# does not support the --identify-strict option.
|
||||
# Invoked by eval'ing the libtool variable
|
||||
# $sharedlib_from_linklib_cmd
|
||||
# Result is available in the variable
|
||||
# $sharedlib_from_linklib_result
|
||||
func_cygming_dll_for_implib_fallback ()
|
||||
{
|
||||
$opt_debug
|
||||
if func_cygming_gnu_implib_p "$1" ; then
|
||||
# binutils import library
|
||||
sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
|
||||
elif func_cygming_ms_implib_p "$1" ; then
|
||||
# ms-generated import library
|
||||
sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
|
||||
else
|
||||
# unknown
|
||||
sharedlib_from_linklib_result=""
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# func_extract_an_archive dir oldlib
|
||||
@ -5142,20 +5304,46 @@ func_mode_link ()
|
||||
if test -z "$libdir" && test "$linkmode" = prog; then
|
||||
func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
|
||||
fi
|
||||
# Prefer using a static library (so that no silly _DYNAMIC symbols
|
||||
# are required to link).
|
||||
if test -n "$old_library"; then
|
||||
func_append newdlprefiles " $dir/$old_library"
|
||||
# Keep a list of preopened convenience libraries to check
|
||||
# that they are being used correctly in the link pass.
|
||||
test -z "$libdir" && \
|
||||
func_append dlpreconveniencelibs " $dir/$old_library"
|
||||
# Otherwise, use the dlname, so that lt_dlopen finds it.
|
||||
elif test -n "$dlname"; then
|
||||
func_append newdlprefiles " $dir/$dlname"
|
||||
else
|
||||
func_append newdlprefiles " $dir/$linklib"
|
||||
fi
|
||||
case "$host" in
|
||||
# special handling for platforms with PE-DLLs.
|
||||
*cygwin* | *mingw* | *cegcc* )
|
||||
# Linker will automatically link against shared library if both
|
||||
# static and shared are present. Therefore, ensure we extract
|
||||
# symbols from the import library if a shared library is present
|
||||
# (otherwise, the dlopen module name will be incorrect). We do
|
||||
# this by putting the import library name into $newdlprefiles.
|
||||
# We recover the dlopen module name by 'saving' the la file
|
||||
# name in a special purpose variable, and (later) extracting the
|
||||
# dlname from the la file.
|
||||
if test -n "$dlname"; then
|
||||
func_tr_sh "$dir/$linklib"
|
||||
eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
|
||||
func_append newdlprefiles " $dir/$linklib"
|
||||
else
|
||||
func_append newdlprefiles " $dir/$old_library"
|
||||
# Keep a list of preopened convenience libraries to check
|
||||
# that they are being used correctly in the link pass.
|
||||
test -z "$libdir" && \
|
||||
func_append dlpreconveniencelibs " $dir/$old_library"
|
||||
fi
|
||||
;;
|
||||
* )
|
||||
# Prefer using a static library (so that no silly _DYNAMIC symbols
|
||||
# are required to link).
|
||||
if test -n "$old_library"; then
|
||||
func_append $newdlprefiles " $dir/$old_library"
|
||||
# Keep a list of preopened convenience libraries to check
|
||||
# that they are being used correctly in the link pass.
|
||||
test -z "$libdir" && \
|
||||
func_append dlpreconveniencelibs " $dir/$old_library"
|
||||
# Otherwise, use the dlname, so that lt_dlopen finds it.
|
||||
elif test -n "$dlname"; then
|
||||
func_append newdlprefiles " $dir/$dlname"
|
||||
else
|
||||
func_append newdlprefiles " $dir/$linklib"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi # $pass = dlpreopen
|
||||
|
||||
if test -z "$libdir"; then
|
||||
|
61
libltdl/m4/libtool.m4
vendored
61
libltdl/m4/libtool.m4
vendored
@ -170,6 +170,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl
|
||||
m4_require([_LT_CHECK_SHELL_FEATURES])dnl
|
||||
m4_require([_LT_CMD_RELOAD])dnl
|
||||
m4_require([_LT_CHECK_MAGIC_METHOD])dnl
|
||||
m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
|
||||
m4_require([_LT_CMD_OLD_ARCHIVE])dnl
|
||||
m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
|
||||
|
||||
@ -3319,6 +3320,45 @@ dnl aclocal-1.4 backwards compatibility:
|
||||
dnl AC_DEFUN([AM_PROG_NM], [])
|
||||
dnl AC_DEFUN([AC_PROG_NM], [])
|
||||
|
||||
# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
|
||||
# ----------------------
|
||||
# how to determine the name of the shared library
|
||||
# associated with a specific link library.
|
||||
# -- PORTME fill in with the dynamic library characteristics
|
||||
m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
|
||||
[m4_require([_LT_DECL_EGREP])
|
||||
m4_require([_LT_DECL_OBJDUMP])
|
||||
m4_require([_LT_DECL_DLLTOOL])
|
||||
AC_CACHE_CHECK([how to associate runtime and link libraries],
|
||||
lt_cv_sharedlib_from_linklib_cmd,
|
||||
[lt_cv_sharedlib_from_linklib_cmd='unknown'
|
||||
|
||||
case $host_os in
|
||||
cygwin* | mingw* | pw32* | cegcc*)
|
||||
# two different shell functions defined in ltmain.sh
|
||||
# decide which to use based on capabilities of $DLLTOOL
|
||||
case `$DLLTOOL --help 2>&1` in
|
||||
*--identify-strict*)
|
||||
lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
|
||||
;;
|
||||
*)
|
||||
lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
# fallback: assume linklib IS sharedlib
|
||||
lt_cv_sharedlib_from_linklib_cmd="$ECHO"
|
||||
;;
|
||||
esac
|
||||
])
|
||||
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
|
||||
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
|
||||
|
||||
_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
|
||||
[Command to associate shared and link libraries])
|
||||
])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
|
||||
|
||||
|
||||
# _LT_PATH_MANIFEST_TOOL
|
||||
# ----------------------
|
||||
@ -3467,8 +3507,8 @@ esac
|
||||
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
|
||||
|
||||
# Transform an extracted symbol line into symbol name and symbol address
|
||||
lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
|
||||
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
|
||||
lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
|
||||
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
|
||||
|
||||
# Handle CRLF in mingw tool chain
|
||||
opt_cr=
|
||||
@ -4296,6 +4336,7 @@ m4_require([_LT_TAG_COMPILER])dnl
|
||||
AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
|
||||
m4_if([$1], [CXX], [
|
||||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
_LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
|
||||
case $host_os in
|
||||
aix[[4-9]]*)
|
||||
# If we're using GNU nm, then we don't want the "-C" option.
|
||||
@ -4315,7 +4356,8 @@ m4_if([$1], [CXX], [
|
||||
case $cc_basename in
|
||||
cl*) ;;
|
||||
*)
|
||||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
_LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@ -4323,7 +4365,6 @@ m4_if([$1], [CXX], [
|
||||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
;;
|
||||
esac
|
||||
_LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
|
||||
], [
|
||||
runpath_var=
|
||||
_LT_TAGVAR(allow_undefined_flag, $1)=
|
||||
@ -4491,7 +4532,8 @@ _LT_EOF
|
||||
_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
|
||||
_LT_TAGVAR(always_export_symbols, $1)=no
|
||||
_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
|
||||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
|
||||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
|
||||
_LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
|
||||
|
||||
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
|
||||
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
|
||||
@ -7269,6 +7311,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
|
||||
AC_SUBST([OBJDUMP])
|
||||
])
|
||||
|
||||
# _LT_DECL_DLLTOOL
|
||||
# ----------------
|
||||
# Ensure DLLTOOL variable is set.
|
||||
m4_defun([_LT_DECL_DLLTOOL],
|
||||
[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
|
||||
test -z "$DLLTOOL" && DLLTOOL=dlltool
|
||||
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
|
||||
AC_SUBST([DLLTOOL])
|
||||
])
|
||||
|
||||
# _LT_DECL_SED
|
||||
# ------------
|
||||
|
Loading…
Reference in New Issue
Block a user