Michael Stone wrote:

> FYI
>
> From: Daniel Schepler <[email protected]>
> Subject: Bug#693337: coreutils: src/factor.c should use HAVE_LONG_LONG_INT
>       instead of undefined HAVE_LONG_LONG
> To: [email protected]
> Date: Thu, 15 Nov 2012 08:02:02 -0800 (3 days, 1 hour, 53 minutes ago)
>
> 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.

Thanks to both of you.
I've written the following.
Daniel, since you're listed as the author, please proofread that
commit log (I wouldn't want to commit anything erroneous in your name).
I'll wait for your ACK before pushing it.

>From 700fe515c26bdb18dd831366773898bf3739b0e2 Mon Sep 17 00:00:00 2001
From: Daniel Schepler <[email protected]>
Date: Sun, 18 Nov 2012 10:04:54 -0800
Subject: [PATCH] build: fix compilation failure on x32

* src/factor.c [HAVE_ATTRIBUTE_MODE]: Fix typo in #if test:
s/HAVE_LONG_LONG/HAVE_LONG_LONG_INT/.  Otherwise, factor.c would
elicit assembler errors on x32: it was incorrectly defining DItype
to long instead of long long.  Patch and report in
http://bugs.debian.org/693337;  Mike Stone notified upstream.
---
 src/factor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/factor.c b/src/factor.c
index 8439262..6d1d17a 100644
--- a/src/factor.c
+++ b/src/factor.c
@@ -147,7 +147,7 @@ typedef unsigned int UDItype    __attribute__ ((mode (DI)));
 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.  */
--
1.8.0.197.g5a90748

Reply via email to