From 96832c36bbe6839dc05c6f74b96f09722788eea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Tue, 9 Aug 2016 03:55:36 +0200 Subject: [PATCH] elfutils: fix aarch64 build --- .../elfutils/patches/fix-aarch64_fregs.patch | 25 +++++++++++++++++++ srcpkgs/elfutils/template | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/elfutils/patches/fix-aarch64_fregs.patch diff --git a/srcpkgs/elfutils/patches/fix-aarch64_fregs.patch b/srcpkgs/elfutils/patches/fix-aarch64_fregs.patch new file mode 100644 index 00000000000..993d84fcf40 --- /dev/null +++ b/srcpkgs/elfutils/patches/fix-aarch64_fregs.patch @@ -0,0 +1,25 @@ +It looks like fregs.vregs[] is an array of double? +Casting to Dwarf_Word instead of & 0xFFFFFFF should do. + +--- backends/aarch64_initreg.c 2015-11-27 14:36:29.000000000 +0100 ++++ backends/aarch64_initreg.c 2016-08-09 03:47:25.428560159 +0200 +@@ -33,7 +33,9 @@ + #include "system.h" + #include + #ifdef __aarch64__ ++#if defined(__GLIBC__) + # include ++#endif + # include + # include + /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */ +@@ -82,7 +82,7 @@ + + Dwarf_Word dwarf_fregs[32]; + for (int r = 0; r < 32; r++) +- dwarf_fregs[r] = fregs.vregs[r] & 0xFFFFFFFF; ++ dwarf_fregs[r] = (Dwarf_Word)fregs.vregs[r]; + + if (! setfunc (64, 32, dwarf_fregs, arg)) + return false; +--- /tmp/musl/builddir/elfutils-0.166/backends/aarch64_initreg.c 2016-08-09 03:49:39.071557467 +0200 diff --git a/srcpkgs/elfutils/template b/srcpkgs/elfutils/template index 36e00402474..41eb57f20a3 100644 --- a/srcpkgs/elfutils/template +++ b/srcpkgs/elfutils/template @@ -1,7 +1,7 @@ # Template file for 'elfutils' pkgname=elfutils version=0.166 -revision=1 +revision=2 build_style=gnu-configure configure_args="--program-prefix=eu-" hostmakedepends="automake libtool"