aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicola Lunghi <nick83ola@gmail.com>2019-11-21 12:57:11 +0000
committerRoss Burton <ross.burton@intel.com>2019-11-25 12:24:21 +0000
commita67a5fd160f97129a6afd65f107cd2cbdfec41e7 (patch)
treea51a17c63ce51685166cb622a394903aafdf04d6
parent0f4eecc000f66d114ad258fa31aed66afa292166 (diff)
downloadmeta-gplv2-a67a5fd160f97129a6afd65f107cd2cbdfec41e7.tar.gz
meta-gplv2-a67a5fd160f97129a6afd65f107cd2cbdfec41e7.tar.bz2
meta-gplv2-a67a5fd160f97129a6afd65f107cd2cbdfec41e7.zip
diffutils: use mempcpy instead of __mempcpy3.1_M1
musl (like uclibc) doesn't define __mempcpy. This patch will replace __mempcpy with mempcpy in the internal regex.c and getopt.c implementation (similar to what is done in grep in this same repo with the uclibc-fix.patch This also render the line: EXTRA_OECONF_libc-uclibc = "--without-included-regex" not needed anymore so it drops it. Signed-off-by: Nicola Lunghi <nick83ola@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--recipes-extended/diffutils/diffutils-2.8.1/0002-included-libc-use-mempcpy-instead-of.patch56
-rw-r--r--recipes-extended/diffutils/diffutils.inc7
-rw-r--r--recipes-extended/diffutils/diffutils_2.8.1.bb1
3 files changed, 57 insertions, 7 deletions
diff --git a/recipes-extended/diffutils/diffutils-2.8.1/0002-included-libc-use-mempcpy-instead-of.patch b/recipes-extended/diffutils/diffutils-2.8.1/0002-included-libc-use-mempcpy-instead-of.patch
new file mode 100644
index 0000000..6994ec7
--- /dev/null
+++ b/recipes-extended/diffutils/diffutils-2.8.1/0002-included-libc-use-mempcpy-instead-of.patch
@@ -0,0 +1,56 @@
+From 61db4da387676690c0f731ef2eccc014d85c23a6 Mon Sep 17 00:00:00 2001
+From: Nicola Lunghi <nicola.lunghi@jci.com>
+Date: Wed, 20 Nov 2019 18:30:10 +0000
+Subject: [PATCH] included libc: use mempcpy instead of __mempcpy
+
+Fix to use mempcpy instead of __mempcpy. This is needed for uclibc and musl
+which doesn't define __mempcpy, only mempcpy. Since they all have
+mempcpy, we'll just use that instead.
+
+Signed-off-by: Nicola Lunghi <nick83ola@gmail.com>
+
+Patch source: OpenEmbedded (grep)
+Upstream-Status: Inappropriate [licensing]
+---
+ lib/getopt.c | 4 ++--
+ lib/regex.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/getopt.c b/lib/getopt.c
+index ed32692..6626f5e 100644
+--- a/lib/getopt.c
++++ b/lib/getopt.c
+@@ -334,7 +334,7 @@ exchange (argv)
+ nonoption_flags_len = nonoption_flags_max_len = 0;
+ else
+ {
+- memset (__mempcpy (new_str, __getopt_nonoption_flags,
++ memset (mempcpy (new_str, __getopt_nonoption_flags,
+ nonoption_flags_max_len),
+ '\0', top + 1 - nonoption_flags_max_len);
+ nonoption_flags_max_len = top + 1;
+@@ -445,7 +445,7 @@ _getopt_initialize (argc, argv, optstring)
+ if (__getopt_nonoption_flags == NULL)
+ nonoption_flags_max_len = -1;
+ else
+- memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
++ memset (mempcpy (__getopt_nonoption_flags, orig_str, len),
+ '\0', nonoption_flags_max_len - len);
+ }
+ }
+diff --git a/lib/regex.c b/lib/regex.c
+index 6daec76..797b20a 100644
+--- a/lib/regex.c
++++ b/lib/regex.c
+@@ -8314,7 +8314,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
+ if (msg_size > errbuf_size)
+ {
+ #if defined HAVE_MEMPCPY || defined _LIBC
+- *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
++ *((char *) mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
+ #else
+ memcpy (errbuf, msg, errbuf_size - 1);
+ errbuf[errbuf_size - 1] = 0;
+--
+2.20.1
+
diff --git a/recipes-extended/diffutils/diffutils.inc b/recipes-extended/diffutils/diffutils.inc
index 243341a..c81348b 100644
--- a/recipes-extended/diffutils/diffutils.inc
+++ b/recipes-extended/diffutils/diffutils.inc
@@ -6,13 +6,6 @@ SECTION = "base"
inherit autotools texinfo update-alternatives gettext
-# diffutils assumes non-glibc compilation with uclibc and
-# this causes it to generate its own implementations of
-# standard functionality. regex.c actually breaks compilation
-# because it uses __mempcpy, there are other things (TBD:
-# see diffutils.mk in buildroot)
-EXTRA_OECONF_libc-uclibc = "--without-included-regex"
-
ALTERNATIVE_${PN} = "diff cmp"
ALTERNATIVE_PRIORITY = "100"
diff --git a/recipes-extended/diffutils/diffutils_2.8.1.bb b/recipes-extended/diffutils/diffutils_2.8.1.bb
index 466bf28..5a71c94 100644
--- a/recipes-extended/diffutils/diffutils_2.8.1.bb
+++ b/recipes-extended/diffutils/diffutils_2.8.1.bb
@@ -9,6 +9,7 @@ SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.gz \
file://diffutils_fix_for_automake-1.12.patch \
file://fix_gcc6.patch \
file://0001-Make-it-build-with-compile-time-hardening-enabled.patch \
+ file://0002-included-libc-use-mempcpy-instead-of.patch \
"
SRC_URI[md5sum] = "71f9c5ae19b60608f6c7f162da86a428"