GNU bug report logs -
#13118
[PATCH] factor: disable longlong.h logic for x32 builds
Previous Next
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
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.