+++ Mark Wielaard [2014-07-03 19:36 +0200]:
> Hi Wookey (and hi Petr, see below, this is a debian elfutils aarch64
> backend bug report, see for full context http://bugs.debian.org/753552
> but the below is probably all you'll need)
> 

> aha. that is probably it... How odd none of the backends seem to handle
> DW_ATE_boolean hmmm... The difference with the aarch64 backend is that
> it explicitly returns -2 (weird type) if it encounters a boolean as
> return value.
> 
> I think a boolean is just like other integral types and so the following
> is probably the correct fix (but I CCed Petr who wrote the original
> backend and probably knows for sure).
> 
> diff --git a/backends/aarch64_retval.c b/backends/aarch64_retval.c
> index 0ed7d56..68de307 100644
> --- a/backends/aarch64_retval.c
> +++ b/backends/aarch64_retval.c
> @@ -357,6 +357,7 @@ aarch64_return_value_location (Dwarf_Die
> *functypedie, const Dwarf_Op **locp)
>                  size of the argument is less than or equal to 8 bytes
>                  [...] the argument is copied to the least significant
>                  bits in x[NGRN].  */
> +           case DW_ATE_boolean:
>             case DW_ATE_signed:
>             case DW_ATE_unsigned:
>             case DW_ATE_unsigned_char:
> 
> Would you be able to test with that?

Yep. Builds and tests pass OK, so I guess that's good. Patch
attached. Kurt, I assume you'll upload this reasonably soon?

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/
diff -Nru elfutils-0.159/debian/changelog elfutils-0.159/debian/changelog
--- elfutils-0.159/debian/changelog	2014-06-24 20:15:39.000000000 +0000
+++ elfutils-0.159/debian/changelog	2014-07-03 18:09:52.000000000 +0000
@@ -1,3 +1,10 @@
+elfutils (0.159-4) UNRELEASED; urgency=medium
+
+  * Fix failing run-native-test on arm64 (from Mark Wielaard)
+    (Closes: #753552)
+
+ -- Wookey <woo...@debian.org>  Thu, 03 Jul 2014 18:02:50 +0000
+
 elfutils (0.159-3) unstable; urgency=medium
 
   * Make it build again on the non linux ports.
diff -Nru elfutils-0.159/debian/patches/aarch64-run-native-test-fix.patch elfutils-0.159/debian/patches/aarch64-run-native-test-fix.patch
--- elfutils-0.159/debian/patches/aarch64-run-native-test-fix.patch	1970-01-01 00:00:00.000000000 +0000
+++ elfutils-0.159/debian/patches/aarch64-run-native-test-fix.patch	2014-07-03 17:53:04.000000000 +0000
@@ -0,0 +1,12 @@
+Index: elfutils-0.159/backends/aarch64_retval.c
+===================================================================
+--- elfutils-0.159.orig/backends/aarch64_retval.c	2014-02-05 00:21:42.000000000 +0000
++++ elfutils-0.159/backends/aarch64_retval.c	2014-07-03 17:52:54.263101929 +0000
+@@ -357,6 +357,7 @@
+ 		 size of the argument is less than or equal to 8 bytes
+ 		 [...] the argument is copied to the least significant
+ 		 bits in x[NGRN].  */
++	    case DW_ATE_boolean:
+ 	    case DW_ATE_signed:
+ 	    case DW_ATE_unsigned:
+ 	    case DW_ATE_unsigned_char:
diff -Nru elfutils-0.159/debian/patches/series elfutils-0.159/debian/patches/series
--- elfutils-0.159/debian/patches/series	2014-06-24 20:14:21.000000000 +0000
+++ elfutils-0.159/debian/patches/series	2014-07-03 17:49:40.000000000 +0000
@@ -12,3 +12,4 @@
 arm_unwind_ret_mask.patch
 non_linux.patch
 unaligned.patch
+aarch64-run-native-test-fix.patch

Reply via email to