|
| 1 | +From a7835a0251e5acdb38d7cbf301457058266bcbca Mon Sep 17 00:00:00 2001 |
| 2 | +From: Chris Packham <judge.packham@gmail.com> |
| 3 | +Date: Sat, 15 Jul 2023 19:21:23 +1200 |
| 4 | +Subject: [PATCH] provide a workaround for a glibc and GNU make incompatibility |
| 5 | + |
| 6 | +Versions of GNU make newer than 4.4 trigger a hang in versions of glibc |
| 7 | +older than 2.31. As distros update to the newer GNU make version we'll |
| 8 | +start seeing more and more reports of this hang. Fortunately we already |
| 9 | +carry GNU make as a comp tool so all we need to do is select the right |
| 10 | +version when needed. |
| 11 | + |
| 12 | +Fixes #1946, #1932, #1975 |
| 13 | +Signed-off-by: Chris Packham <judge.packham@gmail.com> |
| 14 | +--- |
| 15 | + config/configure.in.in | 3 +++ |
| 16 | + config/libc/glibc.in | 9 +++++++++ |
| 17 | + configure.ac | 7 +++++++ |
| 18 | + packages/make/4.3/version.desc | 2 +- |
| 19 | + packages/make/package.desc | 1 + |
| 20 | + 5 files changed, 21 insertions(+), 1 deletion(-) |
| 21 | + |
| 22 | +diff --git a/config/configure.in.in b/config/configure.in.in |
| 23 | +index 91093c2d70..459852a6bf 100644 |
| 24 | +--- a/config/configure.in.in |
| 25 | ++++ b/config/configure.in.in |
| 26 | +@@ -30,6 +30,9 @@ config CONFIGURE_has_make_3_81_or_newer |
| 27 | + config CONFIGURE_has_make_4_0_or_newer |
| 28 | + @KCONFIG_make_4_0_or_newer@ |
| 29 | + |
| 30 | ++config CONFIGURE_has_make_4_4_or_newer |
| 31 | ++ @KCONFIG_make_4_4_or_newer@ |
| 32 | ++ |
| 33 | + config CONFIGURE_has_libtool_2_4_or_newer |
| 34 | + @KCONFIG_libtool_2_4_or_newer@ |
| 35 | + |
| 36 | +diff --git a/config/libc/glibc.in b/config/libc/glibc.in |
| 37 | +index c5de44ceb6..81261cdc46 100644 |
| 38 | +--- a/config/libc/glibc.in |
| 39 | ++++ b/config/libc/glibc.in |
| 40 | +@@ -64,6 +64,15 @@ config GLIBC_DEP_MAKE_4_0 |
| 41 | + select COMP_TOOLS_MAKE |
| 42 | + select MAKE_GNUMAKE_SYMLINK # Override old host make in .build/tools/bin |
| 43 | + |
| 44 | ++# Glibc versions older than 2.31 have a bug that triggers with GNU make 4.4 or newer |
| 45 | ++# where the build process hangs indefinitely |
| 46 | ++config GLIBC_DEP_MAKE_4_3 |
| 47 | ++ def_bool y |
| 48 | ++ depends on GLIBC_older_than_2_32 && CONFIGURE_has_make_4_4_or_newer |
| 49 | ++ select COMP_TOOLS_MAKE |
| 50 | ++ select MAKE_GNUMAKE_SYMLINK |
| 51 | ++ select MAKE_REQUIRE_older_than_4_4 |
| 52 | ++ |
| 53 | + # Glibc 2.31 removed support for pre-v8 SPARC in 32-bit mode (64-bit mode always |
| 54 | + # required UltraSPARC) |
| 55 | + config GLIBC_SPARC_ALLOW_V7 |
| 56 | +diff --git a/configure.ac b/configure.ac |
| 57 | +index 4a33c9ac01..82021b4f05 100644 |
| 58 | +--- a/configure.ac |
| 59 | ++++ b/configure.ac |
| 60 | +@@ -210,6 +210,13 @@ CTNG_PROG_VERSION_REQ_ANY([MAKE], |
| 61 | + [^GNU Make [4-9]\.], |
| 62 | + [make_4_0_or_newer]) |
| 63 | + |
| 64 | ++CTNG_PROG_VERSION_REQ_ANY([MAKE], |
| 65 | ++ [GNU make >= 4.4], |
| 66 | ++ [make], |
| 67 | ++ [gmake make], |
| 68 | ++ [^GNU Make (4\.[4-9]|[5-9]\.)], |
| 69 | ++ [make_4_4_or_newer]) |
| 70 | ++ |
| 71 | + # Check other companion tools that we may or may not build. |
| 72 | + CTNG_PROG_VERSION_REQ_ANY([LIBTOOL], |
| 73 | + [GNU libtool >= 2.4], |
| 74 | +diff --git a/packages/make/4.3/version.desc b/packages/make/4.3/version.desc |
| 75 | +index e69de29..e497b2f 100644 |
| 76 | +--- a/packages/make/4.3/version.desc |
| 77 | ++++ b/packages/make/4.3/version.desc |
| 78 | +@@ -0,0 +1 @@ |
| 79 | ++# Not obsolete. Needed for a workaround for older glibc versions |
| 80 | +diff --git a/packages/make/package.desc b/packages/make/package.desc |
| 81 | +index bd789ade95..657a674ae0 100644 |
| 82 | +--- a/packages/make/package.desc |
| 83 | ++++ b/packages/make/package.desc |
| 84 | +@@ -2,5 +2,6 @@ repository='git https://git.savannah.gnu.org/git/make.git' |
| 85 | + bootstrap='autoreconf -i' |
| 86 | + mirrors='$(CT_Mirrors GNU make)' |
| 87 | + relevantpattern='*.*|.' |
| 88 | ++milestones='4.3 4.4' |
| 89 | + archive_formats='.tar.lz .tar.gz' |
| 90 | + signature_format='packed/.sig' |
0 commit comments