Source: coreutils Version: 8.20-1 Severity: wishlist User: [email protected] Usertags: port-x32 ftbfs-x32
Hi, coreutils is currently failing to build on the x32 port, with assembler errors in src/factor.c. I found that the cause is the file incorrectly defining DItype to long instead of long long, because of the issue I detailed in the subject. Attached a full debdiff of the changes with which coreutils builds again. I also tested the patch on i386, and verified that the build still works fine there. And of course, the patch should make no difference on amd64. -- Daniel Schepler
diff -u coreutils-8.20/debian/changelog coreutils-8.20/debian/changelog --- coreutils-8.20/debian/changelog +++ coreutils-8.20/debian/changelog @@ -1,3 +1,10 @@ +coreutils (8.20-1+x32) UNRELEASED; urgency=low + + * New patch 99_factor_longlong: bug fix in detection of long long + availability. + + -- Daniel Schepler <[email protected]> Wed, 14 Nov 2012 12:09:14 -0800 + coreutils (8.20-1) unstable; urgency=low * New upstream version diff -u coreutils-8.20/debian/patches/00list coreutils-8.20/debian/patches/00list --- coreutils-8.20/debian/patches/00list +++ coreutils-8.20/debian/patches/00list @@ -6,0 +7 @@ +99_factor_longlong only in patch2: unchanged: --- coreutils-8.20.orig/debian/patches/99_factor_longlong.dpatch +++ coreutils-8.20/debian/patches/99_factor_longlong.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 99_factor_longlong.dpatch by Daniel Schepler <[email protected]> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix compilation error on x32 due to asm errors; the root cause was +## DP: a typo using HAVE_LONG_LONG instead of HAVE_LONG_LONG_INT. + +@DPATCH@ +--- coreutils-8.20~/src/factor.c 2012-11-14 20:06:38.000000000 +0000 ++++ coreutils-8.20/src/factor.c 2012-11-14 20:06:55.000000000 +0000 +@@ -138,7 +138,7 @@ + typedef unsigned char UQItype; + typedef long SItype; + typedef unsigned long int USItype; +-# if HAVE_LONG_LONG ++# if HAVE_LONG_LONG_INT + typedef long long int DItype; + typedef unsigned long long int UDItype; + # else /* Assume `long' gives us a wide enough type. Needed for hppa2.0w. */

