From 6592c3e996ae63cf921801884b44759ac5ce2952 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 7 Jul 2019 17:38:29 +0200 Subject: [PATCH] Fix build problem of coreutils with musl When cross compiling with a musl toolchain, the symbol minus_zero gets defined more than once, causing linking problems This commit adds as a simple workaround a patch from the openembedded project. Signed-off-by: David Oberhollenzer --- pkg/coreutils/0001.patch | 56 ++++++++++++++++++++++++++++++++++++++++ pkg/coreutils/build | 2 +- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 pkg/coreutils/0001.patch diff --git a/pkg/coreutils/0001.patch b/pkg/coreutils/0001.patch new file mode 100644 index 0000000..1941071 --- /dev/null +++ b/pkg/coreutils/0001.patch @@ -0,0 +1,56 @@ +From 0562b040fa17f1722ba2b3096067b45d0582ca53 Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Mon, 11 Mar 2019 16:40:29 -0700 +Subject: [PATCH] strtod: fix clash with strtold + +Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817). +* lib/strtod.c (compute_minus_zero, minus_zero): +Simplify by remving the macro / external variable, +and having just a function. User changed. This avoids +the need for an external variable that might clash. + +Upstream-Status: Backported [rhel5] + +Signed-off-by: Oleksandr Kravchuk + +--- + ChangeLog | 9 +++++++++ + lib/strtod.c | 11 +++++------ + 2 files changed, 14 insertions(+), 6 deletions(-) + +diff --git a/lib/strtod.c b/lib/strtod.c +index b9eaa51b4..69b1564e1 100644 +--- a/lib/strtod.c ++++ b/lib/strtod.c +@@ -294,16 +294,15 @@ parse_number (const char *nptr, + ICC 10.0 has a bug when optimizing the expression -zero. + The expression -MIN * MIN does not work when cross-compiling + to PowerPC on Mac OS X 10.5. */ +-#if defined __hpux || defined __sgi || defined __ICC + static DOUBLE +-compute_minus_zero (void) ++minus_zero (void) + { ++#if defined __hpux || defined __sgi || defined __ICC + return -MIN * MIN; +-} +-# define minus_zero compute_minus_zero () + #else +-DOUBLE minus_zero = -0.0; ++ return -0.0; + #endif ++} + + /* Convert NPTR to a DOUBLE. If ENDPTR is not NULL, a pointer to the + character after the last one used in the number is put in *ENDPTR. */ +@@ -479,6 +478,6 @@ STRTOD (const char *nptr, char **endptr) + /* Special case -0.0, since at least ICC miscompiles negation. We + can't use copysign(), as that drags in -lm on some platforms. */ + if (!num && negative) +- return minus_zero; ++ return minus_zero (); + return negative ? -num : num; + } +-- +2.20.1 + diff --git a/pkg/coreutils/build b/pkg/coreutils/build index 87f1efc..5764192 100755 --- a/pkg/coreutils/build +++ b/pkg/coreutils/build @@ -6,7 +6,7 @@ SHA256SUM="ff7a9c918edce6b4f4b2725e3f9b37b0c4d193531cac49a48b56c4d0d3a9e9fd" DEPENDS="toolchain" prepare() { - return + apply_patches } build() {