From 16ad4de2c06095821e5bd27d1ffceb8868cd3657 Mon Sep 17 00:00:00 2001 From: Lucian Cristian Date: Fri, 17 Apr 2020 13:04:37 +0300 Subject: [PATCH] elfutils: aarch64 fix build on musl aarch64_initreg.c: In function 'aarch64_set_initial_registers_tid': aarch64_initreg.c:85:37: error: invalid operands to binary & (have 'long double' and 'unsigned int') dwarf_fregs[r] = fregs.vregs[r] & 0xFFFFFFFF; ~~~~~~~~~~~~~~ ^ Signed-off-by: Lucian Cristian --- .../006-Fix-build-on-aarch64-musl.patch | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch diff --git a/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch b/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch new file mode 100644 index 0000000000..6f7956c5ae --- /dev/null +++ b/package/libs/elfutils/patches/006-Fix-build-on-aarch64-musl.patch @@ -0,0 +1,59 @@ +From 578f370c7e7a9f056aefa062b34590b0aa13bce5 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Tue, 15 Aug 2017 17:27:30 +0800 +Subject: [PATCH] Fix build on aarch64/musl + +Errors + +invalid operands to binary & (have 'long double' and 'unsigned int') + +error: redefinition + of 'struct iovec' + struct iovec { void *iov_base; size_t iov_len; }; + ^ +Upstream-Status: Pending +Signed-off-by: Khem Raj + +Rebase to 0.170 +Signed-off-by: Hongxu Jia + +--- + backends/aarch64_initreg.c | 4 ++-- + backends/arm_initreg.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/backends/aarch64_initreg.c b/backends/aarch64_initreg.c +index daf6f37..6445276 100644 +--- a/backends/aarch64_initreg.c ++++ b/backends/aarch64_initreg.c +@@ -33,7 +33,7 @@ + #include "system.h" + #include + #if defined(__aarch64__) && defined(__linux__) +-# include ++# include + # include + # include + /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */ +@@ -82,7 +82,7 @@ aarch64_set_initial_registers_tid (pid_t tid __attribute__ ((unused)), + + Dwarf_Word dwarf_fregs[32]; + for (int r = 0; r < 32; r++) +- dwarf_fregs[r] = fregs.vregs[r] & 0xFFFFFFFF; ++ dwarf_fregs[r] = (unsigned int)fregs.vregs[r] & 0xFFFFFFFF; + + if (! setfunc (64, 32, dwarf_fregs, arg)) + return false; +diff --git a/backends/arm_initreg.c b/backends/arm_initreg.c +index efcabaf..062bb9e 100644 +--- a/backends/arm_initreg.c ++++ b/backends/arm_initreg.c +@@ -38,7 +38,7 @@ + #endif + + #ifdef __aarch64__ +-# include ++# include + # include + # include + /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */