configure: Detect and use gld/gnm/gar as alternatives to ld/nm/ar, especially for winegcc.

oldstable
Francois Gouget 2008-06-26 14:05:57 +02:00 committed by Alexandre Julliard
parent f023be8aa7
commit 86bd0461a5
5 changed files with 158 additions and 25 deletions

View File

@ -46,6 +46,7 @@ LN_S = @LN_S@
TOOLSDIR = @TOOLSDIR@ TOOLSDIR = @TOOLSDIR@
AS = @AS@ AS = @AS@
LD = @LD@ LD = @LD@
NM = @NM@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
PRELINK = @PRELINK@ PRELINK = @PRELINK@
RM = rm -f RM = rm -f

174
configure vendored
View File

@ -687,7 +687,11 @@ BISON
AS AS
ac_ct_AS ac_ct_AS
LD LD
ac_ct_LD
NM
ac_ct_NM
AR AR
ac_ct_AR
ARFLAGS ARFLAGS
RANLIB RANLIB
STRIP STRIP
@ -5437,8 +5441,10 @@ esac
fi fi
if test -n "$ac_tool_prefix"; then if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args. for ac_prog in ld gld
set dummy ${ac_tool_prefix}ld; ac_word=$2 do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5 { echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_LD+set}" = set; then if test "${ac_cv_prog_LD+set}" = set; then
@ -5454,7 +5460,7 @@ do
test -z "$as_dir" && as_dir=. test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_LD="${ac_tool_prefix}ld" ac_cv_prog_LD="$ac_tool_prefix$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2 break 2
fi fi
@ -5474,11 +5480,15 @@ echo "${ECHO_T}no" >&6; }
fi fi
test -n "$LD" && break
done
fi fi
if test -z "$ac_cv_prog_LD"; then if test -z "$LD"; then
ac_ct_LD=$LD ac_ct_LD=$LD
# Extract the first word of "ld", so it can be a program name with args. for ac_prog in ld gld
set dummy ld; ac_word=$2 do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5 { echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_ac_ct_LD+set}" = set; then if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
@ -5494,7 +5504,7 @@ do
test -z "$as_dir" && as_dir=. test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_LD="ld" ac_cv_prog_ac_ct_LD="$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2 break 2
fi fi
@ -5513,6 +5523,10 @@ else
echo "${ECHO_T}no" >&6; } echo "${ECHO_T}no" >&6; }
fi fi
test -n "$ac_ct_LD" && break
done
if test "x$ac_ct_LD" = x; then if test "x$ac_ct_LD" = x; then
LD="ld" LD="ld"
else else
@ -5528,13 +5542,117 @@ ac_tool_warned=yes ;;
esac esac
LD=$ac_ct_LD LD=$ac_ct_LD
fi fi
else
LD="$ac_cv_prog_LD"
fi fi
if test -n "$ac_tool_prefix"; then if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. for ac_prog in nm gnm
set dummy ${ac_tool_prefix}ar; ac_word=$2 do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_NM+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test -n "$NM"; then
ac_cv_prog_NM="$NM" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_NM="$ac_tool_prefix$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
NM=$ac_cv_prog_NM
if test -n "$NM"; then
{ echo "$as_me:$LINENO: result: $NM" >&5
echo "${ECHO_T}$NM" >&6; }
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
test -n "$NM" && break
done
fi
if test -z "$NM"; then
ac_ct_NM=$NM
for ac_prog in nm gnm
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_ac_ct_NM+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test -n "$ac_ct_NM"; then
ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_NM="$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_NM=$ac_cv_prog_ac_ct_NM
if test -n "$ac_ct_NM"; then
{ echo "$as_me:$LINENO: result: $ac_ct_NM" >&5
echo "${ECHO_T}$ac_ct_NM" >&6; }
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
test -n "$ac_ct_NM" && break
done
if test "x$ac_ct_NM" = x; then
NM="nm"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet. If you think this
configuration is useful to you, please write to autoconf@gnu.org." >&5
echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet. If you think this
configuration is useful to you, please write to autoconf@gnu.org." >&2;}
ac_tool_warned=yes ;;
esac
NM=$ac_ct_NM
fi
fi
if test -n "$ac_tool_prefix"; then
for ac_prog in ar gar
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5 { echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_AR+set}" = set; then if test "${ac_cv_prog_AR+set}" = set; then
@ -5550,7 +5668,7 @@ do
test -z "$as_dir" && as_dir=. test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_AR="${ac_tool_prefix}ar" ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2 break 2
fi fi
@ -5570,11 +5688,15 @@ echo "${ECHO_T}no" >&6; }
fi fi
test -n "$AR" && break
done
fi fi
if test -z "$ac_cv_prog_AR"; then if test -z "$AR"; then
ac_ct_AR=$AR ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args. for ac_prog in ar gar
set dummy ar; ac_word=$2 do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5 { echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
@ -5590,7 +5712,7 @@ do
test -z "$as_dir" && as_dir=. test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_prog_ac_ct_AR="ar" ac_cv_prog_ac_ct_AR="$ac_prog"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2 break 2
fi fi
@ -5609,6 +5731,10 @@ else
echo "${ECHO_T}no" >&6; } echo "${ECHO_T}no" >&6; }
fi fi
test -n "$ac_ct_AR" && break
done
if test "x$ac_ct_AR" = x; then if test "x$ac_ct_AR" = x; then
AR="ar" AR="ar"
else else
@ -5624,8 +5750,6 @@ ac_tool_warned=yes ;;
esac esac
AR=$ac_ct_AR AR=$ac_ct_AR
fi fi
else
AR="$ac_cv_prog_AR"
fi fi
ARFLAGS=rc ARFLAGS=rc
@ -23493,16 +23617,16 @@ BISON!$BISON$ac_delim
AS!$AS$ac_delim AS!$AS$ac_delim
ac_ct_AS!$ac_ct_AS$ac_delim ac_ct_AS!$ac_ct_AS$ac_delim
LD!$LD$ac_delim LD!$LD$ac_delim
ac_ct_LD!$ac_ct_LD$ac_delim
NM!$NM$ac_delim
ac_ct_NM!$ac_ct_NM$ac_delim
AR!$AR$ac_delim AR!$AR$ac_delim
ac_ct_AR!$ac_ct_AR$ac_delim
ARFLAGS!$ARFLAGS$ac_delim ARFLAGS!$ARFLAGS$ac_delim
RANLIB!$RANLIB$ac_delim RANLIB!$RANLIB$ac_delim
STRIP!$STRIP$ac_delim STRIP!$STRIP$ac_delim
WINDRES!$WINDRES$ac_delim WINDRES!$WINDRES$ac_delim
LN_S!$LN_S$ac_delim LN_S!$LN_S$ac_delim
LN!$LN$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
LDCONFIG!$LDCONFIG$ac_delim
_ACEOF _ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 82; then if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 82; then
@ -23564,6 +23688,10 @@ _ACEOF
ac_delim='%!_!# ' ac_delim='%!_!# '
for ac_last_try in false false false false false :; do for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF cat >conf$$subs.sed <<_ACEOF
LN!$LN$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
LDCONFIG!$LDCONFIG$ac_delim
INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
INSTALL_DATA!$INSTALL_DATA$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim
@ -23642,7 +23770,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF _ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 76; then if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 80; then
break break
elif $ac_last_try; then elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

View File

@ -161,8 +161,9 @@ then
fi fi
AC_CHECK_TOOLS(AS,[gas as],as) AC_CHECK_TOOLS(AS,[gas as],as)
AC_CHECK_TOOL(LD,ld,ld) AC_CHECK_TOOLS(LD,[ld gld],ld)
AC_CHECK_TOOL(AR,ar,ar) AC_CHECK_TOOLS(NM,[nm gnm],nm)
AC_CHECK_TOOLS(AR,[ar gar],ar)
AC_SUBST(ARFLAGS,rc) AC_SUBST(ARFLAGS,rc)
AC_PROG_RANLIB AC_PROG_RANLIB
AC_CHECK_TOOL(STRIP,strip,strip) AC_CHECK_TOOL(STRIP,strip,strip)

View File

@ -9,6 +9,7 @@ DEFS = \
-DCPP="\"@CPPBIN@\"" \ -DCPP="\"@CPPBIN@\"" \
-DCXX="\"@CXX@\"" \ -DCXX="\"@CXX@\"" \
-DLD="\"$(LD)\"" \ -DLD="\"$(LD)\"" \
-DNM="\"$(NM)\"" \
-DPRELINK="\"$(PRELINK)\"" -DPRELINK="\"$(PRELINK)\""
TOPSRCDIR = @top_srcdir@ TOPSRCDIR = @top_srcdir@

View File

@ -572,6 +572,8 @@ static void build(struct options* opts)
strarray_add(spec_args, AS); strarray_add(spec_args, AS);
strarray_add(spec_args, "--ld-cmd"); strarray_add(spec_args, "--ld-cmd");
strarray_add(spec_args, LD); strarray_add(spec_args, LD);
strarray_add(spec_args, "--nm-cmd");
strarray_add(spec_args, NM);
strarray_addall(spec_args, strarray_fromstring(DLLFLAGS, " ")); strarray_addall(spec_args, strarray_fromstring(DLLFLAGS, " "));
strarray_add(spec_args, opts->shared ? "--dll" : "--exe"); strarray_add(spec_args, opts->shared ? "--dll" : "--exe");
strarray_add(spec_args, "-o"); strarray_add(spec_args, "-o");