From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19933 invoked by alias); 10 Jan 2013 17:32:26 -0000 Received: (qmail 19903 invoked by uid 22791); 10 Jan 2013 17:32:25 -0000 X-SWARE-Spam-Status: No, hits=-4.0 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 10 Jan 2013 17:32:14 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1TtLzB-0000ka-GK from joseph_myers@mentor.com ; Thu, 10 Jan 2013 09:32:13 -0800 Received: from SVR-IES-FEM-01.mgc.mentorg.com ([137.202.0.104]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Thu, 10 Jan 2013 09:32:12 -0800 Received: from digraph.polyomino.org.uk (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server id 14.1.289.1; Thu, 10 Jan 2013 17:32:10 +0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.76) (envelope-from ) id 1TtLz7-0005Hr-85; Thu, 10 Jan 2013 17:32:09 +0000 Date: Thu, 10 Jan 2013 17:32:00 -0000 From: "Joseph S. Myers" To: CC: Subject: Use __extension__ with long long in installed headers Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2013-01/txt/msg00011.txt.bz2 This patch makes installed headers use __extension__ with long long in all the places I found where it was missing, in support of working with -std=c89 -pedantic -Wsystem-headers. Tested x86_64. 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. ports/ChangeLog.aarch64: 2013-01-10 Joseph Myers * sysdeps/aarch64/bits/setjmp.h (__jmp_buf): Use __extension__ with long long. ports/ChangeLog.hppa: 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. ports/ChangeLog.m68k: 2013-01-10 Joseph Myers * sysdeps/m68k/bits/byteswap.h (__bswap_64): Use __extension__ with long long. ports/ChangeLog.mips: 2013-01-10 Joseph Myers * sysdeps/unix/sysv/linux/mips/bits/sigcontext.h (struct sigcontext): Use __extension__ with long long in all definitions. diff --git a/elf/link.h b/elf/link.h index 29e7ced..500871f 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 41b1367..e90a34b 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/sysdeps/aarch64/bits/setjmp.h b/ports/sysdeps/aarch64/bits/setjmp.h index 6d78b7e..6a93e0a 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 7aa16c9..5cac334 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 4e4dd23..9f0a7b7 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 bc07c1f..04a75e2 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 085a00d..f3c5180 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 6bf708a..41fb7e7 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 47fe751..dc97519 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 6f96257..9221ea2 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 757d047..e59f96a 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 74c7291..1a3d4b5 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 dddbced..ec318ad 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 8a7e5dc..7c666e2 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 838c13c..fed6414 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)) { -- Joseph S. Myers joseph@codesourcery.com