Skip to content
This repository was archived by the owner on Jun 1, 2023. It is now read-only.

Commit 188fc25

Browse files
committed
support redhat lto via gcc-ar/ranlib
which is a wrapper to pass the --plugin liblto arg. binutils ar/ranlib search in their own path, see https://bugzilla.redhat.com/show_bug.cgi?id=1678826 which is different from gcc.
1 parent cd5c4ea commit 188fc25

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

Configure

+16-5
Original file line numberDiff line numberDiff line change
@@ -22181,6 +22181,10 @@ $cc $ccflags -c bar1.c >/dev/null 2>&1
2218122181
$cc $ccflags -c bar2.c >/dev/null 2>&1
2218222182
$cc $ccflags -c foo.c >/dev/null 2>&1
2218322183
$test "X$arflags" = "X" && arflags=rDc
22184+
if test -f /usr/bin/gcc-ar -a -n "$gccversion"; then
22185+
ar=gcc-ar
22186+
full_ar=/usr/bin/gcc-ar
22187+
fi
2218422188
if $test x$osname = xfreebsd; then
2218522189
if $test -z $FREEBSD_KERNEL_VERSION -o $FREEBSD_KERNEL_VERSION -ge 1000000; then
2218622190
arflags="-r -Dc"
@@ -22236,13 +22240,17 @@ else
2223622240
if $test -n "$llvmsuffix"; then
2223722241
testranlib=llvm-ranlib$llvmsuffix
2223822242
else
22239-
testranlib=ranlib
22243+
if $test X$ar = Xgcc-ar; then
22244+
testranlib=gcc-ranlib
22245+
else
22246+
testranlib=ranlib
22247+
fi
2224022248
fi
2224122249
case "$ranlib" in
2224222250
:) ranlib='' ;;
2224322251
'')
2224422252
ranlib=`./loc $testranlib X /usr/bin /bin /usr/local/bin /opt/local/bin`
22245-
$test -f $ranlib || ranlib=''
22253+
$test -f "$ranlib" || ranlib=''
2224622254
# -D for determinism
2224722255
if $ranlib -D bar$_a; then
2224822256
echo "can use $ranlib with -D for determinism. " >&4
@@ -22262,6 +22270,7 @@ else
2226222270
fi
2226322271

2226422272
if $test -n "$gccversion"; then
22273+
# redhat gcc provide gcc-ar and gcc-ranlib, which do not need this
2226522274
case "$ccflags" in
2226622275
*flto*)
2226722276
#some old /usr/bin/ar did not support the plugin flag
@@ -22277,12 +22286,13 @@ if $test -n "$gccversion"; then
2227722286
echo "lto plugin found"
2227822287
else
2227922288
for f in $libpth; do
22280-
$test -f $plugin || plugin="$f/liblto_plugin.$dlext"
22289+
$test -f "$plugin" || plugin="$f/liblto_plugin.$dlext"
2228122290
done
2228222291
fi
2228322292
if $test -f "$plugin"; then
2228422293
case $ar in
2228522294
*llvm-ar*) ;;
22295+
gcc-ar) ;;
2228622296
*) if $ar $arflags --plugin $plugin bar$_a bar2$_o bar1$_o >/dev/null 2>&1; then
2228722297
echo "can use $ar with lto --plugin $plugin" >&4
2228822298
arflags="$arflags --plugin $plugin"
@@ -22292,14 +22302,15 @@ if $test -n "$gccversion"; then
2229222302
case $ranlib in
2229322303
*llvm-ranlib*) ;;
2229422304
:) ;;
22305+
*gcc-ranlib) ;;
2229522306
*) if $ranlib --plugin $plugin bar$_a; then
2229622307
echo "can use $ranlib with lto --plugin $plugin" >&4
2229722308
ranlib="$ranlib --plugin $plugin"
2229822309
fi
2229922310
;;
2230022311
esac
22301-
else
22302-
echo "$plugin for ar with lto not found" >&4
22312+
elif test X$ar != Xgcc-ar; then
22313+
echo "$plugin for $ar with lto not found" >&4
2230322314
fi
2230422315
unset plugin
2230522316
;;

0 commit comments

Comments
 (0)