From 828beb132ddf5664cf9971329e8cdcb93dce43af Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 10 Jan 2013 20:19:45 +0000 Subject: [PATCH] Use __extension__ with long long in installed headers. --- ChangeLog | 20 ++++++++++++ elf/link.h | 4 +-- math/bits/mathcalls.h | 2 ++ ports/ChangeLog.aarch64 | 5 +++ ports/ChangeLog.hppa | 8 +++++ ports/ChangeLog.m68k | 5 +++ ports/ChangeLog.mips | 5 +++ ports/sysdeps/aarch64/bits/setjmp.h | 2 +- ports/sysdeps/hppa/fpu/fpu_control.h | 4 +-- ports/sysdeps/m68k/bits/byteswap.h | 1 + ports/sysdeps/unix/sysv/linux/hppa/bits/ipc.h | 4 +-- .../unix/sysv/linux/mips/bits/sigcontext.h | 32 +++++++++---------- stdlib/stdlib.h | 3 +- sysdeps/generic/inttypes.h | 4 +-- sysdeps/s390/bits/byteswap.h | 1 + sysdeps/unix/sysv/linux/sparc/bits/ipc.h | 4 +-- sysdeps/unix/sysv/linux/sparc/sys/ucontext.h | 2 +- sysdeps/unix/sysv/linux/x86/sys/procfs.h | 2 +- sysdeps/x86/bits/setjmp.h | 2 +- sysdeps/x86/fpu/bits/mathinline.h | 5 +++ 20 files changed, 84 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index abd0a35ca0..08474f4594 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,25 @@ 2013-01-10 Joseph Myers + * elf/link.h (struct dl_phdr_info): Use __extension__ with long + long. + * math/bits/mathcalls.h (llrint): Likewise. + (llround): Likewise. + * stdlib/stdlib.h (struct drand48_data): Likewise. + * sysdeps/generic/inttypes.h (imaxdiv_t): Likewise. + * sysdeps/s390/bits/byteswap.h (__bswap_64): Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/ipc.h (struct ipc_perm): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (struct fpu): + Likewise. + * sysdeps/unix/sysv/linux/x86/sys/procfs.h [__x86_64__] + (elf_greg_t): Likewise. + * sysdeps/x86/bits/setjmp.h [__x86_64__ && __WORDSIZE != 64] + (__jmp_buf): Likewise. + * sysdeps/x86/fpu/bits/mathinline.h (llrintf): Likewise, for all + definitions. + (llrint): Likewise, for all definitions. + (llrintl): Likewise. + * string/string.h [__USE_BSD && __USE_GNU && __GNUC__] (ffsll): Remove [__GNUC__] condition. * wcsmbs/wchar.h [__USE_ISOC99 || (__GNUC__ && __USE_GNU)]: Change diff --git a/elf/link.h b/elf/link.h index 29e7ced063..500871f451 100644 --- a/elf/link.h +++ b/elf/link.h @@ -147,9 +147,9 @@ struct dl_phdr_info whether or not each later member is available. */ /* Incremented when a new object may have been added. */ - unsigned long long int dlpi_adds; + __extension__ unsigned long long int dlpi_adds; /* Incremented when an object may have been removed. */ - unsigned long long int dlpi_subs; + __extension__ unsigned long long int dlpi_subs; /* If there is a PT_TLS segment, its module ID as used in TLS relocations, else zero. */ diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index 41b1367e76..e90a34b0f7 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -323,11 +323,13 @@ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); +__extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); +__extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64 index dd1d64cb65..eb9fb971d0 100644 --- a/ports/ChangeLog.aarch64 +++ b/ports/ChangeLog.aarch64 @@ -1,3 +1,8 @@ +2013-01-10 Joseph Myers + + * sysdeps/aarch64/bits/setjmp.h (__jmp_buf): Use __extension__ + with long long. + 2013-01-02 Joseph Myers * All files with FSF copyright notices: Update copyright dates diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa index 2b798529b9..ef904c2671 100644 --- a/ports/ChangeLog.hppa +++ b/ports/ChangeLog.hppa @@ -1,3 +1,11 @@ +2013-01-10 Joseph Myers + + * sysdeps/hppa/fpu/fpu_control.h (_FPU_GETCW): Use __extension__ + with long long. + (_FPU_SETCW): Likewise. + * sysdeps/unix/sysv/linux/hppa/bits/ipc.h (struct ipc_perm): + Likewise. + 2013-01-08 Andreas Jaeger [BZ# 14985] diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k index b6e93669cc..20eaac716d 100644 --- a/ports/ChangeLog.m68k +++ b/ports/ChangeLog.m68k @@ -1,3 +1,8 @@ +2013-01-10 Joseph Myers + + * sysdeps/m68k/bits/byteswap.h (__bswap_64): Use __extension__ + with long long. + 2013-01-04 Andreas Schwab * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update. diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips index 5a80540bc7..9e2bcffc66 100644 --- a/ports/ChangeLog.mips +++ b/ports/ChangeLog.mips @@ -1,3 +1,8 @@ +2013-01-10 Joseph Myers + + * sysdeps/unix/sysv/linux/mips/bits/sigcontext.h (struct + sigcontext): Use __extension__ with long long in all definitions. + 2013-01-08 Steve Ellcey * sysdeps/mips/memcpy.S: Change prefetch hint, reorder partial diff --git a/ports/sysdeps/aarch64/bits/setjmp.h b/ports/sysdeps/aarch64/bits/setjmp.h index 6d78b7e879..6a93e0a253 100644 --- a/ports/sysdeps/aarch64/bits/setjmp.h +++ b/ports/sysdeps/aarch64/bits/setjmp.h @@ -27,7 +27,7 @@ /* Jump buffer contains: x19-x28, x29(fp), x30(lr), (x31)sp, d8-d15. Other registers are not saved. */ -typedef unsigned long long __jmp_buf [22]; +__extension__ typedef unsigned long long __jmp_buf [22]; #endif #endif diff --git a/ports/sysdeps/hppa/fpu/fpu_control.h b/ports/sysdeps/hppa/fpu/fpu_control.h index 7aa16c9ddd..5cac3344d6 100644 --- a/ports/sysdeps/hppa/fpu/fpu_control.h +++ b/ports/sysdeps/hppa/fpu/fpu_control.h @@ -44,7 +44,7 @@ typedef unsigned int fpu_control_t; /* Macros for accessing the hardware control word. */ #define _FPU_GETCW(cw) \ ({ \ - union { unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \ + union { __extension__ unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \ /* Get the current status word. */ \ __asm__ ("fstd %%fr0,0(%1)\n\t" \ "fldd 0(%1),%%fr0\n\t" \ @@ -54,7 +54,7 @@ typedef unsigned int fpu_control_t; #define _FPU_SETCW(cw) \ ({ \ - union { unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \ + union { __extension__ unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \ __fullfp.__halfreg[0] = cw; \ __asm__ ("fldd 0(%1),%%fr0\n\t" \ : : "m" (__fullfp.__fpreg), "r" (__fullfp.__fpreg) : "%r0" ); \ diff --git a/ports/sysdeps/m68k/bits/byteswap.h b/ports/sysdeps/m68k/bits/byteswap.h index 4e4dd2341a..9f0a7b707a 100644 --- a/ports/sysdeps/m68k/bits/byteswap.h +++ b/ports/sysdeps/m68k/bits/byteswap.h @@ -74,6 +74,7 @@ __bswap_32 (unsigned int __bsx) | (((x) & 0x00000000000000ffull) << 56)) /* Swap bytes in 64 bit value. */ +__extension__ static __inline unsigned long long __bswap_64 (unsigned long long __bsx) { diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/ipc.h b/ports/sysdeps/unix/sysv/linux/hppa/bits/ipc.h index bc07c1fa31..04a75e2e87 100644 --- a/ports/sysdeps/unix/sysv/linux/hppa/bits/ipc.h +++ b/ports/sysdeps/unix/sysv/linux/hppa/bits/ipc.h @@ -57,6 +57,6 @@ struct ipc_perm #endif unsigned short int __seq; /* Sequence number. */ unsigned int __pad3; - unsigned long long int __unused1; - unsigned long long int __unused2; + __extension__ unsigned long long int __unused1; + __extension__ unsigned long long int __unused2; }; diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h b/ports/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h index 085a00d04a..f3c5180b8f 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h +++ b/ports/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h @@ -39,16 +39,16 @@ struct sigcontext { unsigned int sc_regmask; unsigned int sc_status; - unsigned long long sc_pc; - unsigned long long sc_regs[32]; - unsigned long long sc_fpregs[32]; + __extension__ unsigned long long sc_pc; + __extension__ unsigned long long sc_regs[32]; + __extension__ unsigned long long sc_fpregs[32]; unsigned int sc_ownedfp; unsigned int sc_fpc_csr; unsigned int sc_fpc_eir; unsigned int sc_used_math; unsigned int sc_dsp; - unsigned long long sc_mdhi; - unsigned long long sc_mdlo; + __extension__ unsigned long long sc_mdhi; + __extension__ unsigned long long sc_mdlo; unsigned long sc_hi1; unsigned long sc_lo1; unsigned long sc_hi2; @@ -61,17 +61,17 @@ struct sigcontext { /* This structure changed in 2.6.12-rc4 when DSP support was added. */ struct sigcontext { - unsigned long long sc_regs[32]; - unsigned long long sc_fpregs[32]; - unsigned long long sc_mdhi; - unsigned long long sc_hi1; - unsigned long long sc_hi2; - unsigned long long sc_hi3; - unsigned long long sc_mdlo; - unsigned long long sc_lo1; - unsigned long long sc_lo2; - unsigned long long sc_lo3; - unsigned long long sc_pc; + __extension__ unsigned long long sc_regs[32]; + __extension__ unsigned long long sc_fpregs[32]; + __extension__ unsigned long long sc_mdhi; + __extension__ unsigned long long sc_hi1; + __extension__ unsigned long long sc_hi2; + __extension__ unsigned long long sc_hi3; + __extension__ unsigned long long sc_mdlo; + __extension__ unsigned long long sc_lo1; + __extension__ unsigned long long sc_lo2; + __extension__ unsigned long long sc_lo3; + __extension__ unsigned long long sc_pc; unsigned int sc_fpc_csr; unsigned int sc_used_math; unsigned int sc_dsp; diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 6bf708a167..41fb7e711e 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -415,7 +415,8 @@ struct drand48_data unsigned short int __old_x[3]; /* Old state. */ unsigned short int __c; /* Additive const. in congruential formula. */ unsigned short int __init; /* Flag for initializing. */ - unsigned long long int __a; /* Factor in congruential formula. */ + __extension__ unsigned long long int __a; /* Factor in congruential + formula. */ }; /* Return non-negative, double-precision floating-point value in [0.0,1.0). */ diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h index 47fe751e29..dc97519056 100644 --- a/sysdeps/generic/inttypes.h +++ b/sysdeps/generic/inttypes.h @@ -286,8 +286,8 @@ typedef struct /* We have to define the `uintmax_t' type using `lldiv_t'. */ typedef struct { - long long int quot; /* Quotient. */ - long long int rem; /* Remainder. */ + __extension__ long long int quot; /* Quotient. */ + __extension__ long long int rem; /* Remainder. */ } imaxdiv_t; #endif diff --git a/sysdeps/s390/bits/byteswap.h b/sysdeps/s390/bits/byteswap.h index 6f96257005..9221ea2cfc 100644 --- a/sysdeps/s390/bits/byteswap.h +++ b/sysdeps/s390/bits/byteswap.h @@ -123,6 +123,7 @@ __bswap_32 (unsigned int __bsx) | (((x) & 0x000000000000ff00ull) << 40) \ | (((x) & 0x00000000000000ffull) << 56)) +__extension__ static __inline unsigned long long int __bswap_64 (unsigned long long int __bsx) { diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ipc.h b/sysdeps/unix/sysv/linux/sparc/bits/ipc.h index 757d0472bb..e59f96abc5 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/ipc.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/ipc.h @@ -56,6 +56,6 @@ struct ipc_perm unsigned short int __pad1; #endif unsigned short int __seq; /* Sequence number. */ - unsigned long long int __unused1; - unsigned long long int __unused2; + __extension__ unsigned long long int __unused1; + __extension__ unsigned long long int __unused2; }; diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h index 74c729166a..1a3d4b54a7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h @@ -217,7 +217,7 @@ typedef struct fpu typedef struct fpu { union { /* FPU floating point regs */ - unsigned long long fpu_regs[32]; /* 32 singles */ + __extension__ unsigned long long fpu_regs[32]; /* 32 singles */ double fpu_dregs[16]; /* 16 doubles */ } fpu_fr; struct fq *fpu_q; /* ptr to array of FQ entries */ diff --git a/sysdeps/unix/sysv/linux/x86/sys/procfs.h b/sysdeps/unix/sysv/linux/x86/sys/procfs.h index dddbced57e..ec318ad937 100644 --- a/sysdeps/unix/sysv/linux/x86/sys/procfs.h +++ b/sysdeps/unix/sysv/linux/x86/sys/procfs.h @@ -36,7 +36,7 @@ __BEGIN_DECLS /* Type for a general-purpose register. */ #ifdef __x86_64__ -typedef unsigned long long elf_greg_t; +__extension__ typedef unsigned long long elf_greg_t; #else typedef unsigned long elf_greg_t; #endif diff --git a/sysdeps/x86/bits/setjmp.h b/sysdeps/x86/bits/setjmp.h index 8a7e5dcc95..7c666e20d7 100644 --- a/sysdeps/x86/bits/setjmp.h +++ b/sysdeps/x86/bits/setjmp.h @@ -30,7 +30,7 @@ # if __WORDSIZE == 64 typedef long int __jmp_buf[8]; # elif defined __x86_64__ -typedef long long int __jmp_buf[8]; +__extension__ typedef long long int __jmp_buf[8]; # else typedef int __jmp_buf[6]; # endif diff --git a/sysdeps/x86/fpu/bits/mathinline.h b/sysdeps/x86/fpu/bits/mathinline.h index 838c13cd8d..fed64149fc 100644 --- a/sysdeps/x86/fpu/bits/mathinline.h +++ b/sysdeps/x86/fpu/bits/mathinline.h @@ -198,6 +198,7 @@ __NTH (lrint (double __x)) } # endif # ifdef __x86_64__ +__extension__ __MATH_INLINE long long int __NTH (llrintf (float __x)) { @@ -209,6 +210,7 @@ __NTH (llrintf (float __x)) __asm __volatile__ ("cvtss2si %1, %0" : "=r" (__res) : "xm" (__x)); return __res; } +__extension__ __MATH_INLINE long long int __NTH (llrint (double __x)) { @@ -896,16 +898,19 @@ __NTH (lrintl (long double __x)) ("fistpll %0" \ : "=m" (__llrintres) : "t" (__x) : "st"); \ return __llrintres +__extension__ __MATH_INLINE long long int __NTH (llrintf (float __x)) { __llrint_code; } +__extension__ __MATH_INLINE long long int __NTH (llrint (double __x)) { __llrint_code; } +__extension__ __MATH_INLINE long long int __NTH (llrintl (long double __x)) {