summaryrefslogtreecommitdiff
path: root/sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch
blob: 1ab5b2f5dc81ae51deeae053265421e9026a4a2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
From 4232e67ee1440634af8209c7022dfc64cf862819 Mon Sep 17 00:00:00 2001
From: Adrian Ratiu <adrian.ratiu@collabora.com>
Date: Mon, 17 Jan 2022 10:49:58 +0200
Subject: [PATCH v3] configure: fix AR/RANLIB/NM detection

Taken from zlib-devel ML:
https://madler.net/pipermail/zlib-devel_madler.net/2022-January/003322.html

Bug: https://bugs.gentoo.org/831628

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@chromium.org>
Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
---

Changes in v3:
  * Whitespace style fixes
  * Fixed top level variable tests (eg -z AR -> -z $AR)
  * Review and testing as part of Gentoo PR:
    https://github.com/gentoo/gentoo/pull/23888
Changes in v2:
  * Fixed a typo in the "unset NM" case
---
 configure | 38 ++++++++++++++++++++++----------------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/configure b/configure
index e974d1f..045c616 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=${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.35.0