[Zlib-devel] [PATCH] configure: fix AR/RANLIB/NM detection

Adrian Ratiu adrian.ratiu at collabora.com
Tue Jan 18 08:29:01 MST 2022


Scenarios where ${CROSS_PREFIX}ar & co are set but not desired
are possible, for example in ChromiumOS we use the GNU binutils
tools & GCC to build glibc but LLVM/Clang is used for the rest
of the system.

This allows $AR/$RANLIB/$NM to override default CROSS_PREFIX
tools so they can be set to llvm-ar/ranlib/nm.

Suggested-by: Manoj Gupta <manojgupta at chromium.org>
Signed-off-by: Adrian Ratiu <adrian.ratiu at collabora.com>
---
 configure | 38 ++++++++++++++++++++++----------------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/configure b/configure
index e974d1f..180cf09 100755
--- a/configure
+++ b/configure
@@ -46,25 +46,31 @@ VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.
 VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.h`
 
 # establish commands for library building
-if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-    AR=${AR-"${CROSS_PREFIX}ar"}
-    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
-else
-    AR=${AR-"ar"}
-    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
+if [ -z "AR" ] ; then
+  if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+      AR=${AR-"${CROSS_PREFIX}ar"}
+      test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
+  else
+      AR="ar"
+      test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
+  fi
 fi
 ARFLAGS=${ARFLAGS-"rc"}
-if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-    RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
-    test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
-else
-    RANLIB=${RANLIB-"ranlib"}
+if [ -z "RANLIB" ] ; then
+  if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+      RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
+      test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
+  else
+      RANLIB="ranlib"
+  fi
 fi
-if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-    NM=${NM-"${CROSS_PREFIX}nm"}
-    test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
-else
-    NM=${NM-"nm"}
+if [ -z "$NM" ] ; then
+  if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126;   then
+      NM=${"${CROSS_PREFIX}nm"}
+      test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
+  else
+      NM="nm"
+  fi
 fi
 
 # set defaults before processing command line options
-- 
2.34.1




More information about the Zlib-devel mailing list