diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/bits/hwcap.h | 23 | ||||
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 3 | ||||
-rw-r--r-- | sysdeps/powerpc/bits/hwcap.h | 53 | ||||
-rw-r--r-- | sysdeps/powerpc/sysdep.h | 29 | ||||
-rw-r--r-- | sysdeps/sparc/bits/hwcap.h | 47 | ||||
-rw-r--r-- | sysdeps/sparc/sysdep.h | 29 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/bits/hwcap.h | 36 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sh/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist | 2 |
16 files changed, 185 insertions, 53 deletions
diff --git a/sysdeps/generic/bits/hwcap.h b/sysdeps/generic/bits/hwcap.h new file mode 100644 index 0000000000..b27d2febb0 --- /dev/null +++ b/sysdeps/generic/bits/hwcap.h @@ -0,0 +1,23 @@ +/* Defines for bits in AT_HWCAP. + Copyright (C) 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_AUXV_H +# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." +#endif + +/* No bits defined for this architecture. */ diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index e071015cee..98cc123078 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -597,6 +597,9 @@ struct rtld_global_ro /* Mask for important hardware capabilities we honour. */ EXTERN uint64_t _dl_hwcap_mask; + /* Pointer to the auxv list supplied to the program at startup. */ + EXTERN ElfW(auxv_t) *_dl_auxv; + /* Get architecture specific definitions. */ #define PROCINFO_DECL #ifndef PROCINFO_CLASS diff --git a/sysdeps/powerpc/bits/hwcap.h b/sysdeps/powerpc/bits/hwcap.h new file mode 100644 index 0000000000..89e7d8b731 --- /dev/null +++ b/sysdeps/powerpc/bits/hwcap.h @@ -0,0 +1,53 @@ +/* Defines for bits in AT_HWCAP. + Copyright (C) 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_AUXV_H +# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." +#endif + +/* + * The following must match the kernels asm/cputable.h. + */ +#define PPC_FEATURE_32 0x80000000 /* 32-bit mode. */ +#define PPC_FEATURE_64 0x40000000 /* 64-bit mode. */ +#define PPC_FEATURE_601_INSTR 0x20000000 /* 601 chip, Old POWER ISA. */ +#define PPC_FEATURE_HAS_ALTIVEC 0x10000000 /* SIMD/Vector Unit. */ +#define PPC_FEATURE_HAS_FPU 0x08000000 /* Floating Point Unit. */ +#define PPC_FEATURE_HAS_MMU 0x04000000 /* Memory Management Unit. */ +#define PPC_FEATURE_HAS_4xxMAC 0x02000000 /* 4xx Multiply Accumulator. */ +#define PPC_FEATURE_UNIFIED_CACHE 0x01000000 /* Unified I/D cache. */ +#define PPC_FEATURE_HAS_SPE 0x00800000 /* Signal Processing ext. */ +#define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 /* SPE Float. */ +#define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 /* SPE Double. */ +#define PPC_FEATURE_NO_TB 0x00100000 /* 601/403gx have no timebase */ +#define PPC_FEATURE_POWER4 0x00080000 /* POWER4 ISA 2.00 */ +#define PPC_FEATURE_POWER5 0x00040000 /* POWER5 ISA 2.02 */ +#define PPC_FEATURE_POWER5_PLUS 0x00020000 /* POWER5+ ISA 2.03 */ +#define PPC_FEATURE_CELL_BE 0x00010000 /* CELL Broadband Engine */ +#define PPC_FEATURE_BOOKE 0x00008000 +#define PPC_FEATURE_SMT 0x00004000 /* Simultaneous Multi-Threading */ +#define PPC_FEATURE_ICACHE_SNOOP 0x00002000 +#define PPC_FEATURE_ARCH_2_05 0x00001000 /* ISA 2.05 */ +#define PPC_FEATURE_PA6T 0x00000800 /* PA Semi 6T Core */ +#define PPC_FEATURE_HAS_DFP 0x00000400 /* Decimal FP Unit */ +#define PPC_FEATURE_POWER6_EXT 0x00000200 /* P6 + mffgpr/mftgpr */ +#define PPC_FEATURE_ARCH_2_06 0x00000100 /* ISA 2.06 */ +#define PPC_FEATURE_HAS_VSX 0x00000080 /* P7 Vector Extension. */ +#define PPC_FEATURE_PSERIES_PERFMON_COMPAT 0x00000040 +#define PPC_FEATURE_TRUE_LE 0x00000002 +#define PPC_FEATURE_PPC_LE 0x00000001 diff --git a/sysdeps/powerpc/sysdep.h b/sysdeps/powerpc/sysdep.h index 5cd8613d3e..7682ae9188 100644 --- a/sysdeps/powerpc/sysdep.h +++ b/sysdeps/powerpc/sysdep.h @@ -18,33 +18,10 @@ /* * Powerpc Feature masks for the Aux Vector Hardware Capabilities (AT_HWCAP). * This entry is copied to _dl_hwcap or rtld_global._dl_hwcap during startup. - * The following must match the kernels linux/asm/cputable.h. */ -#define PPC_FEATURE_32 0x80000000 /* 32-bit mode. */ -#define PPC_FEATURE_64 0x40000000 /* 64-bit mode. */ -#define PPC_FEATURE_601_INSTR 0x20000000 /* 601 chip, Old POWER ISA. */ -#define PPC_FEATURE_HAS_ALTIVEC 0x10000000 /* SIMD/Vector Unit. */ -#define PPC_FEATURE_HAS_FPU 0x08000000 /* Floating Point Unit. */ -#define PPC_FEATURE_HAS_MMU 0x04000000 /* Memory Management Unit. */ -#define PPC_FEATURE_HAS_4xxMAC 0x02000000 /* 4xx Multiply Accumulator. */ -#define PPC_FEATURE_UNIFIED_CACHE 0x01000000 /* Unified I/D cache. */ -#define PPC_FEATURE_HAS_SPE 0x00800000 /* Signal Processing ext. */ -#define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 /* SPE Float. */ -#define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 /* SPE Double. */ -#define PPC_FEATURE_NO_TB 0x00100000 /* 601/403gx have no timebase */ -#define PPC_FEATURE_POWER4 0x00080000 /* POWER4 ISA 2.00 */ -#define PPC_FEATURE_POWER5 0x00040000 /* POWER5 ISA 2.02 */ -#define PPC_FEATURE_POWER5_PLUS 0x00020000 /* POWER5+ ISA 2.03 */ -#define PPC_FEATURE_CELL_BE 0x00010000 /* CELL Broadband Engine */ -#define PPC_FEATURE_BOOKE 0x00008000 -#define PPC_FEATURE_SMT 0x00004000 /* Simultaneous Multi-Threading */ -#define PPC_FEATURE_ICACHE_SNOOP 0x00002000 -#define PPC_FEATURE_ARCH_2_05 0x00001000 /* ISA 2.05 */ -#define PPC_FEATURE_PA6T 0x00000800 /* PA Semi 6T Core */ -#define PPC_FEATURE_HAS_DFP 0x00000400 /* Decimal FP Unit */ -#define PPC_FEATURE_POWER6_EXT 0x00000200 /* P6 + mffgpr/mftgpr */ -#define PPC_FEATURE_ARCH_2_06 0x00000100 /* ISA 2.06 */ -#define PPC_FEATURE_HAS_VSX 0x00000080 /* P7 Vector Extension. */ +#define _SYS_AUXV_H +#include <bits/hwcap.h> + #define PPC_FEATURE_970 (PPC_FEATURE_POWER4 + PPC_FEATURE_HAS_ALTIVEC) #ifdef __ASSEMBLER__ diff --git a/sysdeps/sparc/bits/hwcap.h b/sysdeps/sparc/bits/hwcap.h new file mode 100644 index 0000000000..d922d7b0e8 --- /dev/null +++ b/sysdeps/sparc/bits/hwcap.h @@ -0,0 +1,47 @@ +/* Defines for bits in AT_HWCAP. + Copyright (C) 2011-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_AUXV_H +# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." +#endif + +#define HWCAP_SPARC_FLUSH 0x00000001 +#define HWCAP_SPARC_STBAR 0x00000002 +#define HWCAP_SPARC_SWAP 0x00000004 +#define HWCAP_SPARC_MULDIV 0x00000008 +#define HWCAP_SPARC_V9 0x00000010 +#define HWCAP_SPARC_ULTRA3 0x00000020 +#define HWCAP_SPARC_BLKINIT 0x00000040 +#define HWCAP_SPARC_N2 0x00000080 +#define HWCAP_SPARC_MUL32 0x00000100 +#define HWCAP_SPARC_DIV32 0x00000200 +#define HWCAP_SPARC_FSMULD 0x00000400 +#define HWCAP_SPARC_V8PLUS 0x00000800 +#define HWCAP_SPARC_POPC 0x00001000 +#define HWCAP_SPARC_VIS 0x00002000 +#define HWCAP_SPARC_VIS2 0x00004000 +#define HWCAP_SPARC_ASI_BLK_INIT 0x00008000 +#define HWCAP_SPARC_FMAF 0x00010000 +#define HWCAP_SPARC_VIS3 0x00020000 +#define HWCAP_SPARC_HPC 0x00040000 +#define HWCAP_SPARC_RANDOM 0x00080000 +#define HWCAP_SPARC_TRANS 0x00100000 +#define HWCAP_SPARC_FJFMAU 0x00200000 +#define HWCAP_SPARC_IMA 0x00400000 +#define HWCAP_SPARC_ASI_CACHE_SPARING \ + 0x00800000 diff --git a/sysdeps/sparc/sysdep.h b/sysdeps/sparc/sysdep.h index bcffec94f0..2d7b7f0213 100644 --- a/sysdeps/sparc/sysdep.h +++ b/sysdeps/sparc/sysdep.h @@ -15,33 +15,8 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ -/* Bits present in AT_HWCAP on SPARC. */ - -#define HWCAP_SPARC_FLUSH 0x00000001 -#define HWCAP_SPARC_STBAR 0x00000002 -#define HWCAP_SPARC_SWAP 0x00000004 -#define HWCAP_SPARC_MULDIV 0x00000008 -#define HWCAP_SPARC_V9 0x00000010 -#define HWCAP_SPARC_ULTRA3 0x00000020 -#define HWCAP_SPARC_BLKINIT 0x00000040 -#define HWCAP_SPARC_N2 0x00000080 -#define HWCAP_SPARC_MUL32 0x00000100 -#define HWCAP_SPARC_DIV32 0x00000200 -#define HWCAP_SPARC_FSMULD 0x00000400 -#define HWCAP_SPARC_V8PLUS 0x00000800 -#define HWCAP_SPARC_POPC 0x00001000 -#define HWCAP_SPARC_VIS 0x00002000 -#define HWCAP_SPARC_VIS2 0x00004000 -#define HWCAP_SPARC_ASI_BLK_INIT 0x00008000 -#define HWCAP_SPARC_FMAF 0x00010000 -#define HWCAP_SPARC_VIS3 0x00020000 -#define HWCAP_SPARC_HPC 0x00040000 -#define HWCAP_SPARC_RANDOM 0x00080000 -#define HWCAP_SPARC_TRANS 0x00100000 -#define HWCAP_SPARC_FJFMAU 0x00200000 -#define HWCAP_SPARC_IMA 0x00400000 -#define HWCAP_SPARC_ASI_CACHE_SPARING \ - 0x00800000 +#define _SYS_AUXV_H 1 +#include <bits/hwcap.h> #ifdef __ASSEMBLER__ diff --git a/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist b/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist index ccb8f9f6e9..d6695ebb91 100644 --- a/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist @@ -1801,11 +1801,13 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __poll_chk F __ppoll_chk F aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F timespec_get F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist index 41d08819c9..bacdb6aab0 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist @@ -1761,11 +1761,13 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __poll_chk F __ppoll_chk F aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F timespec_get F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist index c593952077..a0d362e111 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist @@ -68,11 +68,13 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __poll_chk F __ppoll_chk F aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F timespec_get F diff --git a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h new file mode 100644 index 0000000000..7f03ffe461 --- /dev/null +++ b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h @@ -0,0 +1,36 @@ +/* Defines for bits in AT_HWCAP. + Copyright (C) 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_AUXV_H +# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead." +#endif + +/* + * The following must match the kernels asm/elf.h. + * Note that these are *not* the same as the STORE FACILITY LIST bits. + */ +#define HWCAP_S390_ESAN3 1 +#define HWCAP_S390_ZARCH 2 +#define HWCAP_S390_STFLE 4 +#define HWCAP_S390_MSA 8 +#define HWCAP_S390_LDISP 16 +#define HWCAP_S390_EIMM 32 +#define HWCAP_S390_DFP 64 +#define HWCAP_S390_HPAGE 128 +#define HWCAP_S390_ETF3EH 256 +#define HWCAP_S390_HIGH_GPRS 512 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist index c015dafbf2..728550bdfc 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist @@ -1758,11 +1758,13 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __poll_chk F __ppoll_chk F aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F timespec_get F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist index 8d57add926..1ca4811ea9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist @@ -75,11 +75,13 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __poll_chk F __ppoll_chk F aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F timespec_get F diff --git a/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist index ce6b549ac0..ae57b67f03 100644 --- a/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist @@ -75,11 +75,13 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __poll_chk F __ppoll_chk F aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F timespec_get F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist index 815e8af40c..1804348cfd 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist @@ -1753,6 +1753,7 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __getshmlba F __poll_chk F __ppoll_chk F @@ -1761,6 +1762,7 @@ GLIBC_2.16 aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F sys_errlist D 0x220 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist index 39c06427a4..2914d1c211 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist @@ -74,6 +74,7 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __getshmlba F __poll_chk F __ppoll_chk F @@ -82,6 +83,7 @@ GLIBC_2.16 aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F sys_errlist D 0x440 diff --git a/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist index 6f15f00e1f..2a1b8e9f93 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist @@ -70,11 +70,13 @@ GLIBC_2.15 scandirat64 F GLIBC_2.16 GLIBC_2.16 A + __getauxval F __poll_chk F __ppoll_chk F aligned_alloc F c16rtomb F c32rtomb F + getauxval F mbrtoc16 F mbrtoc32 F timespec_get F |