Skip to content

Commit e1b2103

Browse files
stratakisvstinner
authored andcommitted
[3.6] bpo-31625: Stop using ranlib (GH-10417)
* stop using ranlib (closes bpo-31625) (#3815) Instead, simply pass 's' to ar. * explicitly list objects for the ar command (#3824) $^ is not portable. closes bpo-31625
1 parent cbf5767 commit e1b2103

File tree

4 files changed

+4
-107
lines changed

4 files changed

+4
-107
lines changed

Makefile.pre.in

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ CXX= @CXX@
3737
MAINCC= @MAINCC@
3838
LINKCC= @LINKCC@
3939
AR= @AR@
40-
RANLIB= @RANLIB@
4140
READELF= @READELF@
4241
SOABI= @SOABI@
4342
LDVERSION= @LDVERSION@
@@ -593,16 +592,9 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
593592

594593

595594
# Build static library
596-
# avoid long command lines, same as LIBRARY_OBJS
597595
$(LIBRARY): $(LIBRARY_OBJS)
598596
-rm -f $@
599-
$(AR) $(ARFLAGS) $@ Modules/getbuildinfo.o
600-
$(AR) $(ARFLAGS) $@ $(PARSER_OBJS)
601-
$(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
602-
$(AR) $(ARFLAGS) $@ $(PYTHON_OBJS) Python/frozen.o
603-
$(AR) $(ARFLAGS) $@ $(MODULE_OBJS)
604-
$(AR) $(ARFLAGS) $@ $(MODOBJS)
605-
$(RANLIB) $@
597+
$(AR) $(ARFLAGS) $@ $(LIBRARY_OBJS)
606598

607599
libpython$(LDVERSION).so: $(LIBRARY_OBJS)
608600
if test $(INSTSONAME) != $(LDLIBRARY); then \
@@ -1435,7 +1427,6 @@ libainstall: @DEF_MAKE_RULE@ python-config
14351427
$(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
14361428
else \
14371429
$(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
1438-
$(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
14391430
fi; \
14401431
else \
14411432
echo Skip install of $(LIBRARY) - use make frameworkinstall; \
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Stop using ranlib on static libraries. Instead, we assume ar supports the 's' flag.

configure

Lines changed: 1 addition & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -694,8 +694,6 @@ READELF
694694
ARFLAGS
695695
ac_ct_AR
696696
AR
697-
RANLIB
698-
USE_INLINE
699697
GNULD
700698
LINKCC
701699
LDVERSION
@@ -6029,98 +6027,6 @@ fi
60296027
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5
60306028
$as_echo "$LDLIBRARY" >&6; }
60316029

6032-
if test -n "$ac_tool_prefix"; then
6033-
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
6034-
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
6035-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6036-
$as_echo_n "checking for $ac_word... " >&6; }
6037-
if ${ac_cv_prog_RANLIB+:} false; then :
6038-
$as_echo_n "(cached) " >&6
6039-
else
6040-
if test -n "$RANLIB"; then
6041-
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
6042-
else
6043-
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6044-
for as_dir in $PATH
6045-
do
6046-
IFS=$as_save_IFS
6047-
test -z "$as_dir" && as_dir=.
6048-
for ac_exec_ext in '' $ac_executable_extensions; do
6049-
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
6050-
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
6051-
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
6052-
break 2
6053-
fi
6054-
done
6055-
done
6056-
IFS=$as_save_IFS
6057-
6058-
fi
6059-
fi
6060-
RANLIB=$ac_cv_prog_RANLIB
6061-
if test -n "$RANLIB"; then
6062-
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
6063-
$as_echo "$RANLIB" >&6; }
6064-
else
6065-
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6066-
$as_echo "no" >&6; }
6067-
fi
6068-
6069-
6070-
fi
6071-
if test -z "$ac_cv_prog_RANLIB"; then
6072-
ac_ct_RANLIB=$RANLIB
6073-
# Extract the first word of "ranlib", so it can be a program name with args.
6074-
set dummy ranlib; ac_word=$2
6075-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6076-
$as_echo_n "checking for $ac_word... " >&6; }
6077-
if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
6078-
$as_echo_n "(cached) " >&6
6079-
else
6080-
if test -n "$ac_ct_RANLIB"; then
6081-
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
6082-
else
6083-
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6084-
for as_dir in $PATH
6085-
do
6086-
IFS=$as_save_IFS
6087-
test -z "$as_dir" && as_dir=.
6088-
for ac_exec_ext in '' $ac_executable_extensions; do
6089-
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
6090-
ac_cv_prog_ac_ct_RANLIB="ranlib"
6091-
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
6092-
break 2
6093-
fi
6094-
done
6095-
done
6096-
IFS=$as_save_IFS
6097-
6098-
fi
6099-
fi
6100-
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
6101-
if test -n "$ac_ct_RANLIB"; then
6102-
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
6103-
$as_echo "$ac_ct_RANLIB" >&6; }
6104-
else
6105-
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6106-
$as_echo "no" >&6; }
6107-
fi
6108-
6109-
if test "x$ac_ct_RANLIB" = x; then
6110-
RANLIB=":"
6111-
else
6112-
case $cross_compiling:$ac_tool_warned in
6113-
yes:)
6114-
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
6115-
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
6116-
ac_tool_warned=yes ;;
6117-
esac
6118-
RANLIB=$ac_ct_RANLIB
6119-
fi
6120-
else
6121-
RANLIB="$ac_cv_prog_RANLIB"
6122-
fi
6123-
61246030

61256031
if test -n "$ac_tool_prefix"; then
61266032
for ac_prog in ar aal
@@ -6227,7 +6133,7 @@ fi
62276133

62286134
if test -z "$ARFLAGS"
62296135
then
6230-
ARFLAGS="rc"
6136+
ARFLAGS="rcs"
62316137
fi
62326138

62336139
if test -n "$ac_tool_prefix"; then

configure.ac

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1196,15 +1196,14 @@ fi
11961196

11971197
AC_MSG_RESULT($LDLIBRARY)
11981198

1199-
AC_PROG_RANLIB
12001199
AC_SUBST(AR)
12011200
AC_CHECK_TOOLS(AR, ar aal, ar)
12021201

12031202
# tweak ARFLAGS only if the user didn't set it on the command line
12041203
AC_SUBST(ARFLAGS)
12051204
if test -z "$ARFLAGS"
12061205
then
1207-
ARFLAGS="rc"
1206+
ARFLAGS="rcs"
12081207
fi
12091208

12101209
AC_CHECK_TOOLS([READELF], [readelf], [:])

0 commit comments

Comments
 (0)