diff --git a/coreutils-testsuite.changes b/coreutils-testsuite.changes index 9e3b396..ba2961d 100644 --- a/coreutils-testsuite.changes +++ b/coreutils-testsuite.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jun 7 14:36:26 UTC 2013 - schwab@suse.de + +- longlong-aarch64.patch: fix build on aarch64 + ------------------------------------------------------------------- Fri Jun 7 01:50:04 UTC 2013 - mail@bernhard-voelker.de diff --git a/coreutils-testsuite.spec b/coreutils-testsuite.spec index 388d392..ea393e0 100644 --- a/coreutils-testsuite.spec +++ b/coreutils-testsuite.spec @@ -92,6 +92,7 @@ Patch3: coreutils-remove_kill_documentation.patch Patch4: coreutils-i18n.patch Patch8: coreutils-sysinfo.patch Patch16: coreutils-invalid-ids.patch +Patch17: longlong-aarch64.patch # #Patch33: coreutils-8.9-singlethreaded-sort.patch @@ -132,6 +133,7 @@ the GNU fileutils, sh-utils, and textutils packages. #%%endif %patch8 %patch16 +%patch17 -p1 # #%%patch33 %patch100 diff --git a/coreutils.changes b/coreutils.changes index 9e3b396..ba2961d 100644 --- a/coreutils.changes +++ b/coreutils.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jun 7 14:36:26 UTC 2013 - schwab@suse.de + +- longlong-aarch64.patch: fix build on aarch64 + ------------------------------------------------------------------- Fri Jun 7 01:50:04 UTC 2013 - mail@bernhard-voelker.de diff --git a/coreutils.spec b/coreutils.spec index 6f9ad6f..6de95d4 100644 --- a/coreutils.spec +++ b/coreutils.spec @@ -92,6 +92,7 @@ Patch3: coreutils-remove_kill_documentation.patch Patch4: coreutils-i18n.patch Patch8: coreutils-sysinfo.patch Patch16: coreutils-invalid-ids.patch +Patch17: longlong-aarch64.patch # #Patch33: coreutils-8.9-singlethreaded-sort.patch @@ -132,6 +133,7 @@ the GNU fileutils, sh-utils, and textutils packages. #%%endif %patch8 %patch16 +%patch17 -p1 # #%%patch33 %patch100 diff --git a/longlong-aarch64.patch b/longlong-aarch64.patch new file mode 100644 index 0000000..facdbf2 --- /dev/null +++ b/longlong-aarch64.patch @@ -0,0 +1,51 @@ +From 9fe7c5b6eb373d859390dd5a7844a666d8b7818b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Torbj=C3=B6rn=20Granlund?= +Date: Mon, 4 Mar 2013 17:57:33 +0000 +Subject: [PATCH] build: fix factor build failure on aarch64 + +* src/longlong.h (__aarch64__): Make add_ssaaaa and sub_ddmmss work. +* NEWS: Mention the build fix. +Reported at https://bugzilla.redhat.com/917735 +--- + NEWS | 4 ++++ + src/longlong.h | 21 +++++++-------------- + 2 files changed, 11 insertions(+), 14 deletions(-) + +diff --git a/src/longlong.h b/src/longlong.h +index 4681642..eba2417 100644 +--- a/src/longlong.h ++++ b/src/longlong.h +@@ -529,23 +529,16 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype); + #endif /* __arm__ */ + + #if defined (__aarch64__) && W_TYPE_SIZE == 64 ++/* FIXME: Extend the immediate range for the low word by using both ++ ADDS and SUBS, since they set carry in the same way. */ + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("adds\t%1, %4, %5\n\tadc\t%0, %2, %3" \ ++ __asm__ ("adds\t%1, %x4, %5\n\tadc\t%0, %x2, %x3" \ + : "=r" (sh), "=&r" (sl) \ +- : "r" (ah), "rZ" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC) ++ : "rZ" (ah), "rZ" (bh), "%r" (al), "rI" (bl) __CLOBBER_CC) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- do { \ +- if (__builtin_constant_p (bl)) \ +- { \ +- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \ +- : "=r" (sh), "=&r" (sl) \ +- : "r" (ah), "r" (bh), "r" (al), "rI" (bl) __CLOBBER_CC); \ +- } \ +- else /* only bh might be a constant */ \ +- __asm__ ("subs\t%1, %4, %5\n\tsbc\t%0, %2, %3" \ +- : "=r" (sh), "=&r" (sl) \ +- : "r" (ah), "rZ" (bh), "r" (al), "rI" (bl) __CLOBBER_CC);\ +- } while (0) ++ __asm__ ("subs\t%1, %x4, %5\n\tsbc\t%0, %x2, %x3" \ ++ : "=r,r" (sh), "=&r,&r" (sl) \ ++ : "rZ,rZ" (ah), "rZ,rZ" (bh), "r,Z" (al), "rI,r" (bl) __CLOBBER_CC) + #define umul_ppmm(ph, pl, m0, m1) \ + do { \ + UDItype __m0 = (m0), __m1 = (m1); \ +-- +1.8.3 +