GNU bug report logs - #13118
[PATCH] factor: disable longlong.h logic for x32 builds

Previous Next

Package: coreutils;

Reported by: Mike Frysinger <vapier <at> gentoo.org>

Date: Fri, 7 Dec 2012 20:45:01 UTC

Severity: normal

Tags: patch

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Pádraig Brady <P <at> draigBrady.com>
To: Mike Frysinger <vapier <at> gentoo.org>
Cc: 13118 <at> debbugs.gnu.org
Subject: bug#13118: [PATCH] factor: disable longlong.h logic for x32 builds
Date: Fri, 07 Dec 2012 20:55:15 +0000
On 12/07/2012 08:44 PM, Mike Frysinger wrote:
> The current x86_64 asm code does not work for x32 ABIs, so disable it
> until someone can fix it.  Simply deleting the q suffix is not enough.
>
> * src/longlong.h: Check for __ILP32__ for x86_64 targets.
> ---
>   src/longlong.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/longlong.h b/src/longlong.h
> index f2b2c49..baf001c 100644
> --- a/src/longlong.h
> +++ b/src/longlong.h
> @@ -1006,7 +1006,7 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype *, UWtype, UWtype, UWtype);
>   #endif
>   #endif /* 80x86 */
>
> -#if defined (__amd64__) && W_TYPE_SIZE == 64
> +#if defined (__amd64__) && W_TYPE_SIZE == 64 && !defined (__ILP32__)
>   #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
>     __asm__ ("addq %5,%q1\n\tadcq %3,%q0"					\
>   	   : "=r" (sh), "=&r" (sl)					\
>

I think we may go for something more general here,
as we're having all sorts of problems in this area.
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=history;f=src/longlong.h

It seems that we need _LP64 defined,
to enable W_TYPE_SIZE == 64 code safely.

thanks,
Pádraig.




This bug report was last modified 12 years and 215 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.