mirror of
https://git.yoctoproject.org/poky
synced 2026-02-10 02:33:02 +01:00
- Update Debian patches http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz - Rebase Debian patches to 0.177 debian/hppa_backend.diff debian/mips_backend.diff debian/arm_backend.diff debian/mips_readelf_w.patch debian/testsuite-ignore-elflint.diff debian/mips_cfi.patch - Fix build failure while applying debian patches 0001-fix-compile-failure-with-debian-patches.patch - Rebase musl patches (From OE-Core rev: 35143611034758cc670e9d88bc93f97fe33c52fc) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
166 lines
4.5 KiB
Diff
166 lines
4.5 KiB
Diff
From 7f5e2fd86d54e0a4d195ec65afb9b411829dff9f Mon Sep 17 00:00:00 2001
|
|
From: Hongxu Jia <hongxu.jia@windriver.com>
|
|
Date: Fri, 23 Aug 2019 10:19:48 +0800
|
|
Subject: [PATCH 3/3] musl-utils
|
|
|
|
Provide missing defines which otherwise are available on glibc system headers
|
|
|
|
Alter the error API to match posix version
|
|
use qsort instead of qsort_r which is glibc specific API
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Upstream-Status: Inappropriate [workaround for musl]
|
|
|
|
Rebase to 0.177
|
|
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
|
---
|
|
src/arlib.h | 6 ++++++
|
|
src/elfcompress.c | 7 +++++++
|
|
src/readelf.c | 20 ++++++++++++--------
|
|
src/strip.c | 7 +++++++
|
|
src/unstrip.c | 9 +++++++++
|
|
5 files changed, 41 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/src/arlib.h b/src/arlib.h
|
|
index e117166..8326f6c 100644
|
|
--- a/src/arlib.h
|
|
+++ b/src/arlib.h
|
|
@@ -29,6 +29,12 @@
|
|
#include <stdint.h>
|
|
#include <sys/types.h>
|
|
|
|
+#if !defined(ALLPERMS)
|
|
+# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */
|
|
+#endif
|
|
+#if !defined(DEFFILEMODE)
|
|
+# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/
|
|
+#endif
|
|
|
|
/* State of -D/-U flags. */
|
|
extern bool arlib_deterministic_output;
|
|
diff --git a/src/elfcompress.c b/src/elfcompress.c
|
|
index 6ba6af4..0c7674b 100644
|
|
--- a/src/elfcompress.c
|
|
+++ b/src/elfcompress.c
|
|
@@ -37,6 +37,13 @@
|
|
#include "libeu.h"
|
|
#include "printversion.h"
|
|
|
|
+#if !defined(ALLPERMS)
|
|
+# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */
|
|
+#endif
|
|
+#if !defined(FNM_EXTMATCH)
|
|
+# define FNM_EXTMATCH (0)
|
|
+#endif
|
|
+
|
|
/* Name and version of program. */
|
|
ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
|
|
|
|
diff --git a/src/readelf.c b/src/readelf.c
|
|
index 5c02a9b..817562d 100644
|
|
--- a/src/readelf.c
|
|
+++ b/src/readelf.c
|
|
@@ -4813,10 +4813,11 @@ listptr_base (struct listptr *p)
|
|
return cudie_base (&cu);
|
|
}
|
|
|
|
+static const char *listptr_name;
|
|
+
|
|
static int
|
|
-compare_listptr (const void *a, const void *b, void *arg)
|
|
+compare_listptr (const void *a, const void *b)
|
|
{
|
|
- const char *name = arg;
|
|
struct listptr *p1 = (void *) a;
|
|
struct listptr *p2 = (void *) b;
|
|
|
|
@@ -4832,21 +4833,21 @@ compare_listptr (const void *a, const void *b, void *arg)
|
|
p1->warned = p2->warned = true;
|
|
error (0, 0,
|
|
gettext ("%s %#" PRIx64 " used with different address sizes"),
|
|
- name, (uint64_t) p1->offset);
|
|
+ listptr_name, (uint64_t) p1->offset);
|
|
}
|
|
if (p1->dwarf64 != p2->dwarf64)
|
|
{
|
|
p1->warned = p2->warned = true;
|
|
error (0, 0,
|
|
gettext ("%s %#" PRIx64 " used with different offset sizes"),
|
|
- name, (uint64_t) p1->offset);
|
|
+ listptr_name, (uint64_t) p1->offset);
|
|
}
|
|
if (listptr_base (p1) != listptr_base (p2))
|
|
{
|
|
p1->warned = p2->warned = true;
|
|
error (0, 0,
|
|
gettext ("%s %#" PRIx64 " used with different base addresses"),
|
|
- name, (uint64_t) p1->offset);
|
|
+ listptr_name, (uint64_t) p1->offset);
|
|
}
|
|
if (p1->attr != p2 ->attr)
|
|
{
|
|
@@ -4854,7 +4855,7 @@ compare_listptr (const void *a, const void *b, void *arg)
|
|
error (0, 0,
|
|
gettext ("%s %#" PRIx64
|
|
" used with different attribute %s and %s"),
|
|
- name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr),
|
|
+ listptr_name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr),
|
|
dwarf_attr_name (p2->attr));
|
|
}
|
|
}
|
|
@@ -4926,8 +4927,11 @@ static void
|
|
sort_listptr (struct listptr_table *table, const char *name)
|
|
{
|
|
if (table->n > 0)
|
|
- qsort_r (table->table, table->n, sizeof table->table[0],
|
|
- &compare_listptr, (void *) name);
|
|
+ {
|
|
+ listptr_name = name;
|
|
+ qsort (table->table, table->n, sizeof table->table[0],
|
|
+ &compare_listptr);
|
|
+ }
|
|
}
|
|
|
|
static bool
|
|
diff --git a/src/strip.c b/src/strip.c
|
|
index 4054c2a..d2d2176 100644
|
|
--- a/src/strip.c
|
|
+++ b/src/strip.c
|
|
@@ -46,6 +46,13 @@
|
|
#include <system.h>
|
|
#include <printversion.h>
|
|
|
|
+#if !defined(ACCESSPERMS)
|
|
+# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
|
|
+#endif
|
|
+#if !defined(FNM_EXTMATCH)
|
|
+# define FNM_EXTMATCH (0)
|
|
+#endif
|
|
+
|
|
typedef uint8_t GElf_Byte;
|
|
|
|
/* Name and version of program. */
|
|
diff --git a/src/unstrip.c b/src/unstrip.c
|
|
index fc87832..21ea6b3 100644
|
|
--- a/src/unstrip.c
|
|
+++ b/src/unstrip.c
|
|
@@ -56,6 +56,15 @@
|
|
# define _(str) gettext (str)
|
|
#endif
|
|
|
|
+#ifndef strndupa
|
|
+#define strndupa(s, n) \
|
|
+ ({const char *__in = (s); \
|
|
+ size_t __len = strnlen (__in, (n)) + 1; \
|
|
+ char *__out = (char *) alloca (__len); \
|
|
+ __out[__len-1] = '\0'; \
|
|
+ (char *) memcpy (__out, __in, __len-1);})
|
|
+#endif
|
|
+
|
|
/* Name and version of program. */
|
|
ARGP_PROGRAM_VERSION_HOOK_DEF = print_version;
|
|
|
|
--
|
|
2.7.4
|
|
|