branch: development
commit f49da6ca2a77234719f34597ea583f29c0cf10d4
Author: Mitch <[email protected]>
AuthorDate: Mon Dec 2 22:47:48 2024 +0200
libtool: Fix MSVC cl.exe .exp extension collision
MSVC's compiler uses the .exp entension for their own export format,
which causes a build failure when a subsequent build is run. The
MSVC compiler, cl.exe, errors for an invalid file format. This is fixed
by using a similar extension name to avoid the naming collision.
Reported: https://savannah.gnu.org/support/?111157
* build-aux/ltmain.in: Replace .exp extension with .expsym.
* m4/libtool.m4: Replace .exp extension with .expsym.
---
build-aux/ltmain.in | 10 ++++----
m4/libtool.m4 | 68 ++++++++++++++++++++++++++---------------------------
2 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
index af014430..425de05a 100644
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -2925,7 +2925,7 @@ extern \"C\" {
# Prepare the list of exported symbols
if test -z "$export_symbols"; then
- export_symbols=$output_objdir/$outputname.exp
+ export_symbols=$output_objdir/$outputname.expsym
$opt_dry_run || {
$RM $export_symbols
eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'<
"$nlist" > "$export_symbols"'
@@ -2938,8 +2938,8 @@ extern \"C\" {
}
else
$opt_dry_run || {
- eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"'
< "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" >
"$nlist"T'
+ eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"'
< "$export_symbols" > "$output_objdir/$outputname.expsym"'
+ eval '$GREP -f "$output_objdir/$outputname.expsym" < "$nlist" >
"$nlist"T'
eval '$MV "$nlist"T "$nlist"'
case $host in
*cygwin* | *mingw* | *windows* | *cegcc* )
@@ -7915,7 +7915,7 @@ func_mode_link ()
if test -z "$export_symbols"; then
if test yes = "$always_export_symbols" || test -n
"$export_symbols_regex"; then
func_verbose "generating symbol list for '$libname.la'"
- export_symbols=$output_objdir/$libname.exp
+ export_symbols=$output_objdir/$libname.expsym
$opt_dry_run || $RM $export_symbols
cmds=$export_symbols_cmds
save_ifs=$IFS; IFS='~'
@@ -8181,7 +8181,7 @@ func_mode_link ()
${skipped_export-false} && {
func_verbose "generating symbol list for '$libname.la'"
- export_symbols=$output_objdir/$libname.exp
+ export_symbols=$output_objdir/$libname.expsym
$opt_dry_run || $RM $export_symbols
libobjs=$output
# Append the command to create the export file.
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 336dc88a..f009a5db 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1680,9 +1680,9 @@ AC_CACHE_CHECK([$1], [$2],
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null;
then
+ if test ! -s conftest.er2 || diff conftest.expsym conftest.er2
>/dev/null; then
$2=yes
fi
fi
@@ -1720,9 +1720,9 @@ AC_CACHE_CHECK([$1], [$2],
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
+ if diff conftest.expsym conftest.er2 >/dev/null; then
$2=yes
fi
else
@@ -2163,9 +2163,9 @@ AC_CACHE_CHECK([if $compiler supports -c -o
file.$ac_objext],
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.expsym
$SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2
>/dev/null; then
+ if test ! -s out/conftest.er2 || diff out/conftest.expsym
out/conftest.er2 >/dev/null; then
_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
fi
fi
@@ -4470,7 +4470,7 @@ m4_if([$1], [CXX], [
# AIX 5 now supports IA64 processor
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso
-bI:/lib/syscalls.expsym'
fi
;;
chorus*)
@@ -4819,7 +4819,7 @@ m4_if([$1], [CXX], [
# AIX 5 now supports IA64 processor
_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
else
- _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.expsym'
fi
;;
@@ -5783,14 +5783,14 @@ _LT_EOF
_LT_TAGVAR(archive_cmds, $1)='$CC -Fe$output_objdir/$soname $libobjs
$compiler_flags $deplibs
-Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
_LT_TAGVAR(archive_expsym_cmds, $1)='if
_LT_DLL_DEF_P([$export_symbols]); then
cp "$export_symbols" "$output_objdir/$soname.def";
- echo "$tool_output_objdir$soname.def" >
"$output_objdir/$soname.exp";
+ echo "$tool_output_objdir$soname.def" >
"$output_objdir/$soname.expsym";
else
- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols >
$output_objdir/$soname.exp;
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols >
$output_objdir/$soname.expsym;
fi~
if test -z "$linker_flags"; then
- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.exp"
-Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
+ $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.expsym"
-Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
else
- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.exp"
-Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
+ $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.expsym"
-Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
fi~
linknames='
# The linker will not automatically build a static lib if we build a
DLL.
@@ -6102,8 +6102,8 @@ _LT_EOF
else
_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs
$deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" &&
func_echo_all "-set_version $verstring"` -update_registry
$output_objdir/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do
printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n"
"-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp
$compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" &&
$ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations
-o $lib~$RM $lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do
printf "%s %s\\n" -exported_symbol "\$i" >> $lib.expsym; done; printf "%s\\n"
"-hidden">> $lib.expsym~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.expsym
$compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" &&
$ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations
-o $lib~$RM $lib.expsym'
# Both c and cxx compiler support -rpath directly
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -6120,21 +6120,21 @@ _LT_EOF
if test yes = "$GCC"; then
wlarc='$wl'
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text
$wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat
$export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >>
$lib.exp~
- $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h
$wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.expsym~cat
$export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >>
$lib.expsym~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.expsym $wl-h
$wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.expsym'
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
wlarc=''
_LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname
-o $lib $libobjs $deplibs $linker_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat
$export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >>
$lib.exp~
- $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib
$libobjs $deplibs $linker_flags~$RM $lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo
"local: *; };" >> $lib.expsym~
+ $LD -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib
$libobjs $deplibs $linker_flags~$RM $lib.expsym'
;;
*)
wlarc='$wl'
_LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname
-o $lib $libobjs $deplibs $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat
$export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >>
$lib.exp~
- $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib
$libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo
"local: *; };" >> $lib.expsym~
+ $CC -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib
$libobjs $deplibs $compiler_flags~$RM $lib.expsym'
;;
esac
fi
@@ -6869,14 +6869,14 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(archive_cmds, $1)='$CC -Fe$output_objdir/$soname $libobjs
$compiler_flags $deplibs
-Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
_LT_TAGVAR(archive_expsym_cmds, $1)='if
_LT_DLL_DEF_P([$export_symbols]); then
cp "$export_symbols" "$output_objdir/$soname.def";
- echo "$tool_output_objdir$soname.def" >
"$output_objdir/$soname.exp";
+ echo "$tool_output_objdir$soname.def" >
"$output_objdir/$soname.expsym";
else
- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols >
$output_objdir/$soname.exp;
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols >
$output_objdir/$soname.expsym;
fi~
if test -z "$linker_flags"; then
- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.exp"
-Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
+ $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.expsym"
-Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
else
- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.exp"
-Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
+ $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags
$deplibs "@$tool_output_objdir$soname.expsym"
-Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
fi~
linknames='
# The linker will not automatically build a static lib if we build a
DLL.
@@ -7395,10 +7395,10 @@ if test yes != "$_lt_caught_CXX_error"; then
*)
_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym
-soname $soname `test -n "$verstring" && func_echo_all "-set_version
$verstring"` -update_registry $output_objdir/so_locations -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat
$export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs
$deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input
$wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"`
-update_registry $output_objdir/so_locations -o $lib~
- $RM $lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat
$export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.expsym;
done~
+ echo "-hidden">> $lib.expsym~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs
$deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input
$wl$lib.expsym `test -n "$verstring" && $ECHO "-set_version $verstring"`
-update_registry $output_objdir/so_locations -o $lib~
+ $RM $lib.expsym'
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
;;
esac
@@ -7477,8 +7477,8 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(archive_cmds_need_lc,$1)=yes
_LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
_LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname
-o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local:
*; };" >> $lib.exp~
- $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo
"local: *; };" >> $lib.expsym~
+ $CC -G$allow_undefined_flag $wl-M $wl$lib.expsym -h$soname -o
$lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM
$lib.expsym'
_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -7514,8 +7514,8 @@ if test yes != "$_lt_caught_CXX_error"; then
_LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
if $CC --version | $GREP -v '^2\.7' > /dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $stdlibflag
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h
$wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local:
*; };" >> $lib.exp~
- $CC -shared $pic_flag $stdlibflag $wl-M $wl$lib.exp $wl-h
$wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects
$compiler_flags~$RM $lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo
"local: *; };" >> $lib.expsym~
+ $CC -shared $pic_flag $stdlibflag $wl-M $wl$lib.expsym $wl-h
$wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects
$compiler_flags~$RM $lib.expsym'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
@@ -7525,8 +7525,8 @@ if test yes != "$_lt_caught_CXX_error"; then
# g++ 2.7 appears to require '-G' NOT '-shared' on this
# platform.
_LT_TAGVAR(archive_cmds, $1)='$CC -G $stdlibflag
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h
$wl$soname -o $lib'
- _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local:
*; };" >> $lib.exp~
- $CC -G $stdlibflag $wl-M $wl$lib.exp $wl-h $wl$soname -o
$lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM
$lib.exp'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo
"local: *; };" >> $lib.expsym~
+ $CC -G $stdlibflag $wl-M $wl$lib.expsym $wl-h $wl$soname -o
$lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM
$lib.expsym'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when