- Get this branch:
-
git clone
-b hjl/pr21913/master
https://git.launchpad.net/glibc
Branch merges
Related source package recipes
Branch information
- Name:
- hjl/pr21913/master
- Repository:
- lp:glibc
Recent commits
- 99dd284... by "H.J. Lu" <email address hidden>
-
i386: Add <startup.h> [BZ #21913]
On Linux/i386, there are 3 ways to make a system call:
1. call *%gs:SYSINFO_
OFFSET. This requires TLS initialization.
2. call *_dl_sysinfo. This requires relocation of _dl_sysinfo.
3. int $0x80. This is slower than #2 and #3, but works everywhere.When an object file is compiled with PIC, #1 is prefered since it is
faster than #3 and doesn't require relocation of _dl_sysinfo. For
dynamic executables, ld.so initializes TLS. However, for static
executables, before TLS is initialized by __libc_setup_tls, #3 should
be used for syscalls.This patch adds <startup.h> which defines _startup_fatal and defaults
it to __libc_fatal. It replaces __libc_fatal with _startup_fatal in
static executables where it is called before __libc_setup_tls is called.
This header file is included in all files containing functions which are
called before __libc_setup_tls is called. On Linux/i386, when PIE is
enabled by default, _startup_fatal is turned into ABORT_INSTRUCTION and
I386_USE_SYSENTER is defined to 0 so that "int $0x80" is used for system
calls before __libc_setup_tls is called.[BZ #21913]
* config.h.in (BUILD_PIE_DEFAULT) : New.
* csu/libc-tls.c: Include <startup.h>.
* elf/dl-tunables.c: Likewise.
* sysdeps/unix/sysv/ linux/i386/ brk.c: Likewise.
* csu/libc-tls.c: Include <startup.h>.
(__libc_setup_tls) : Call _startup_fatal instead of __libc_fatal.
* sysdeps/generic/ startup. h: New file.
* sysdeps/unix/sysv/ linux/i386/ startup. h: Likewise. - 57a72fa... by "H.J. Lu" <email address hidden>
-
x86-64: Add FMA multiarch functions to libm
This patch adds multiarch functions optimized with -mfma -mavx2 to libm.
e_pow-fma.c is compiled with $(config-cflags- nofma) due to PR 19003. * sysdeps/
x86_64/ fpu/multiarch/ Makefile (libm-sysdep_ routines) :
Add e_exp-fma, e_log-fma, e_pow-fma, s_atan-fma, e_asin-fma,
e_atan2-fma, s_sin-fma, s_tan-fma, mplog-fma, mpa-fma,
slowexp-fma, slowpow-fma, sincos32-fma, doasin-fma, dosincos-fma,
halfulp-fma, mpexp-fma, mpatan2-fma, mpatan-fma, mpsqrt-fma,
and mptan-fma.
(CFLAGS-doasin- fma.c): New.
(CFLAGS-dosincos- fma.c): Likewise.
(CFLAGS-e_asin- fma.c): Likewise.
(CFLAGS-e_atan2- fma.c): Likewise.
(CFLAGS-e_exp-fma. c): Likewise.
(CFLAGS-e_log-fma. c): Likewise.
(CFLAGS-e_pow-fma. c): Likewise.
(CFLAGS-halfulp- fma.c): Likewise.
(CFLAGS-mpa-fma. c): Likewise.
(CFLAGS-mpatan- fma.c): Likewise.
(CFLAGS-mpatan2- fma.c): Likewise.
(CFLAGS-mpexp-fma. c): Likewise.
(CFLAGS-mplog-fma. c): Likewise.
(CFLAGS-mpsqrt- fma.c): Likewise.
(CFLAGS-mptan-fma. c): Likewise.
(CFLAGS-s_atan- fma.c): Likewise.
(CFLAGS-sincos32- fma.c): Likewise.
(CFLAGS-slowexp- fma.c): Likewise.
(CFLAGS-slowpow- fma.c): Likewise.
(CFLAGS-s_sin-fma. c): Likewise.
(CFLAGS-s_tan-fma. c): Likewise.
* sysdeps/x86_64/ fpu/multiarch/ doasin- fma.c: New file.
* sysdeps/x86_64/ fpu/multiarch/ dosincos- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_asin- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_atan2- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_exp-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_log-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_pow-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ halfulp- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ ifunc-avx- fma4.h: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ ifunc-fma4. h: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ mpa-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ mpatan- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ mpatan2- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ mpexp-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ mplog-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ mpsqrt- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ mptan-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_atan- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_sin-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_tan-fma. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ sincos32- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ slowexp- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ slowpow- fma.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_asin. c: Rewrite.
* sysdeps/x86_64/ fpu/multiarch/ e_atan2. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_exp.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_log.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ e_pow.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_atan. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_sin.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_tan.c: Likewise. - 219dd32... by Joseph Myers <email address hidden>
-
Reimplement min_of_type using __MATH_TG.
This patch reimplements the libm-internal min_of_type macro to use
__MATH_TG instead of its own local type-generic implementation, so
simplifying the code and reducing the number of different type-generic
implementation variants in use in glibc.Tested for x86_64.
* sysdeps/
generic/ math_private. h (__EXPR_FLT128): Remove macro.
(min_of_type_f): New macro.
(min_of_type_): Likewise.
(min_of_type_l): Likewise.
(min_of_type_f128) : Likewise.
(min_of_type): Define using __MATH_TG and taking an expression
argument.
(math_check_force_ underflow) : Pass expression instead of type to
min_of_type.
(math_check_force_ underflow_ nonneg) : Likewise. - 64d4dea... by "H.J. Lu" <email address hidden>
-
x86: Remove assembly versions of HAS_CPU_
FEATURE/ HAS_ARCH_ FEATURE Since all x86 IFUNC selectors are implemented in C, assembly versions of
HAS_CPU_FEATURE and HAS_ARCH_FEATURE can be removed.* sysdeps/
x86/cpu- features. h [__ASSEMBLER__]
(LOAD_RTLD_GLOBAL_ RO_RDX, HAS_FEATURE, LOAD_FUNC_GOT_EAX,
HAS_CPU_FEATURE, HAS_ARCH_FEATURE): Removed. - 973da22... by "H.J. Lu" <email address hidden>
-
i686: Implement IFUNC selectors in C
* sysdeps/
i386/i686/ multiarch/ Makefile (sysdep_routines): Add
bcopy-ia32, bzero-ia32, rawmemchr-ia32 memchr-ia32,
memcmp-ia32, memcpy-ia32, memmove-ia32, mempcpy-ia32,
memset-ia32, strcat-ia32, strchr-ia32, strrchr-ia32,
strcpy-ia32, strcmp-ia32, strcspn-ia32, strpbrk-ia32,
strspn-ia32, strlen-ia32, stpcpy-ia32, stpncpy-ia32,
memcpy_chk-nonshared, mempcpy_ chk-nonshared,
memmove_chk-nonshared and memset_ chk-nonshared
* sysdeps/i386/i686/ multiarch/ bcopy-ia32. S: New file.
* sysdeps/i386/i686/ multiarch/ bcopy.c: Likewise.
* sysdeps/i386/i686/ multiarch/ bzero-ia32. S: Likewise.
* sysdeps/i386/i686/ multiarch/ bzero.c: Likewise.
* sysdeps/i386/i686/ multiarch/ ifunc-memmove. h: Likewise.
* sysdeps/i386/i686/ multiarch/ ifunc-memset. h: Likewise.
* sysdeps/i386/i686/ multiarch/ ifunc-sse2- bsf.h: Likewise.
* sysdeps/i386/i686/ multiarch/ ifunc-sse2- ssse3.h: Likewise.
* sysdeps/i386/i686/ multiarch/ ifunc-sse2. h: Likewise.
* sysdeps/i386/i686/ multiarch/ ifunc-sse4_ 2.h: Likewise.
* sysdeps/i386/i686/ multiarch/ ifunc-ssse3- sse4_2. h: Likewise.
* sysdeps/i386/i686/ multiarch/ memchr- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memchr. c: Likewise.
* sysdeps/i386/i686/ multiarch/ memcmp- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memcmp. c: Likewise.
* sysdeps/i386/i686/ multiarch/ memcpy- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memcpy. c: Likewise.
* sysdeps/i386/i686/ multiarch/ memcpy_ chk-nonshared. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memcpy_ chk.c: Likewise.
* sysdeps/i386/i686/ multiarch/ memmove- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memmove. c: Likewise.
* sysdeps/i386/i686/ multiarch/ memmove_ chk-nonshared. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memmove_ chk.c: Likewise.
* sysdeps/i386/i686/ multiarch/ mempcpy- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ mempcpy. c: Likewise.
* sysdeps/i386/i686/ multiarch/ mempcpy_ chk-nonshared. S: Likewise.
* sysdeps/i386/i686/ multiarch/ mempcpy_ chk.c: Likewise.
* sysdeps/i386/i686/ multiarch/ memrchr. c: Likewise.
* sysdeps/i386/i686/ multiarch/ memset- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memset. c: Likewise.
* sysdeps/i386/i686/ multiarch/ memset_ chk-nonshared. S: Likewise.
* sysdeps/i386/i686/ multiarch/ rawmemchr- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ rawmemchr. c: Likewise.
* sysdeps/i386/i686/ multiarch/ stpcpy- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ stpcpy- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ stpcpy. c: Likewise.
* sysdeps/i386/i686/ multiarch/ stpncpy- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ stpncpy. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strcasecmp. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strcasecmp_ l.c: Likewise.
* sysdeps/i386/i686/ multiarch/ strcat- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcat. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strchr- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strchr. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strcmp- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcmp. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strcpy- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcpy. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strcspn- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcspn. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strlen- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strlen. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strncase. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strncase_ l.c: Likewise.
* sysdeps/i386/i686/ multiarch/ strncat. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strncmp. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strncpy. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strnlen. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strpbrk- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strpbrk. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strrchr- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strrchr. c: Likewise.
* sysdeps/i386/i686/ multiarch/ strspn- ia32.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strspn. c: Likewise.
* sysdeps/i386/i686/ multiarch/ wcschr. c: Likewise.
* sysdeps/i386/i686/ multiarch/ wcscmp. c: Likewise.
* sysdeps/i386/i686/ multiarch/ wcscpy. c: Likewise.
* sysdeps/i386/i686/ multiarch/ wcslen. c: Likewise.
* sysdeps/i386/i686/ multiarch/ wcsrchr. c: Likewise.
* sysdeps/i386/i686/ multiarch/ wmemcmp. c: Likewise.
* sysdeps/i386/i686/ multiarch/ bcopy.S: Removed.
* sysdeps/i386/i686/ multiarch/ bzero.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memchr. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memcmp. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memcpy. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memcpy_ chk.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memmove. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memmove_ chk.S: Likewise.
* sysdeps/i386/i686/ multiarch/ mempcpy. S: Likewise.
* sysdeps/i386/i686/ multiarch/ mempcpy_ chk.S: Likewise.
* sysdeps/i386/i686/ multiarch/ memrchr. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memset. S: Likewise.
* sysdeps/i386/i686/ multiarch/ memset_ chk.S: Likewise.
* sysdeps/i386/i686/ multiarch/ rawmemchr. S: Likewise.
* sysdeps/i386/i686/ multiarch/ stpcpy. S: Likewise.
* sysdeps/i386/i686/ multiarch/ stpncpy. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcasecmp. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcasecmp_ l.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcat. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcmp. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcpy. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strcspn. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strlen. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strncase. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strncase_ l.S: Likewise.
* sysdeps/i386/i686/ multiarch/ strncat. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strncmp. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strncpy. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strnlen. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strpbrk. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strrchr. S: Likewise.
* sysdeps/i386/i686/ multiarch/ strspn. S: Likewise.
* sysdeps/i386/i686/ multiarch/ wcschr. S: Likewise.
* sysdeps/i386/i686/ multiarch/ wcscmp. S: Likewise.
* sysdeps/i386/i686/ multiarch/ wcscpy. S: Likewise.
* sysdeps/i386/i686/ multiarch/ wcslen. S: Likewise.
* sysdeps/i386/i686/ multiarch/ wcsrchr. S: Likewise.
* sysdeps/i386/i686/ multiarch/ wmemcmp. S: Likewise. - 8537e0f... by "H.J. Lu" <email address hidden>
-
x86-64: Implement libmathvec IFUNC selectors in C
* sysdeps/
x86_64/ fpu/multiarch/ Makefile (libmvec- sysdep_ routines)
Add svml_d_cos2_core- sse2, svml_d_ cos4_core- sse,
svml_d_cos8_core- avx2, svml_d_ exp2_core- sse2,
svml_d_exp4_core- sse, svml_d_ exp8_core- avx2,
svml_d_log2_core- sse2, svml_d_ log4_core- sse,
svml_d_log8_core- avx2, svml_d_ pow2_core- sse2,
svml_d_pow4_core- sse, svml_d_ pow8_core- avx2
svml_d_sin2_core- sse2, svml_d_ sin4_core- sse,
svml_d_sin8_core- avx2, svml_d_ sincos2_ core-sse2,
svml_d_sincos4_ core-sse, svml_d_ sincos8_ core-avx2,
svml_s_cosf16_ core-avx2, svml_s_ cosf4_core- sse2,
svml_s_cosf8_core- sse, svml_s_ expf16_ core-avx2,
svml_s_expf4_core- sse2, svml_s_ expf8_core- sse,
svml_s_logf16_ core-avx2, svml_s_ logf4_core- sse2,
svml_s_logf8_core- sse, svml_s_ powf16_ core-avx2,
svml_s_powf4_core- sse2, svml_s_ powf8_core- sse,
svml_s_sincosf16_ core-avx2, svml_s_ sincosf4_ core-sse2,
svml_s_sincosf8_ core-sse, svml_s_ sinf16_ core-avx2,
svml_s_sinf4_core- sse2 and svml_s_ sinf8_core- sse.
* sysdeps/x86_64/ fpu/multiarch/ ifunc-mathvec- avx2.h: New file.
* sysdeps/x86_64/ fpu/multiarch/ ifunc-mathvec- avx512. h: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ ifunc-mathvec- sse4_1. h: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos2_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp2_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log2_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow2_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin2_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos2_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos4_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos8_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf16_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf16_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf16_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf16_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf16_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf4_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf8_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf16_ core.c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf4_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf8_core. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos2_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos2_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN2v_cos): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos4_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN4v_cos): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cos8_core- avx2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN8v_cos): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp2_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp2_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN2v_exp): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp4_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN4v_exp): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ exp8_core- avx2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN8v_exp): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log2_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log2_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN2v_log): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log4_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN4v_log): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ log8_core- avx2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN8v_log): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow2_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow2_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN2vv_pow): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow4_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN4vv_pow): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ pow8_core- avx2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN8vv_pow): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin2_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin2_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN2v_sin): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin4_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN4v_sin): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sin8_core- avx2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN8v_sin): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos2_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos2_ core-sse2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN2vvv_sincos) : Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos4_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos4_ core-sse. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN4vvv_sincos) : Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos8_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincos8_ core-avx2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN8vvv_sincos) : Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf16_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf16_ core-avx2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN16v_cosf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf4_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN4v_cosf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ cosf8_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN8v_cosf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf16_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf16_ core-avx2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN16v_expf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf4_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN4v_expf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ expf8_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN8v_expf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf16_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf16_ core-avx2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN16v_logf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf4_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN4v_logf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ logf8_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN8v_logf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf16_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf16_ core-avx2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN16vv_powf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf4_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN4vv_powf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ powf8_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN8vv_powf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf16_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf16_ core-avx2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN16vvv_sincosf) : Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf4_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf4_ core-sse2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN4vvv_sincosf) : Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf8_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sincosf8_ core-sse. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN8vvv_sincosf) : Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf16_ core.S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf16_ core-avx2. S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVeN16v_sinf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf4_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf4_core- sse2.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVbN4v_sinf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf8_core. S: Renamed to
...
* sysdeps/x86_64/ fpu/multiarch/ svml_d_ sinf8_core- sse.S: This.
Don't include <sysdep.h> nor <init-arch.h>.
(_ZGVdN8v_sinf): Removed. - 10a87ca... by "H.J. Lu" <email address hidden>
-
x86-64: Implement libm IFUNC selectors in C
* sysdeps/
x86_64/ fpu/multiarch/ Makefile (libm-sysdep_ routines) :
Add s_ceil-sse4_1, s_ceilf-sse4_1, s_floor-sse4_1,
s_floorf-sse4_1, s_nearbyint-sse4_1, s_nearbyintf-sse4_1,
s_rint-sse4_1 and s_rintf-sse4_1.
* sysdeps/x86_64/ fpu/multiarch/ ifunc-sse4_ 1.h: New file.
* sysdeps/x86_64/ fpu/multiarch/ s_ceil. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_ceilf. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_floor. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_floorf. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_nearbyint. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_nearbyintf. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_rint. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_rintf. c: Likewise.
* sysdeps/x86_64/ fpu/multiarch/ s_ceil. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_ceil- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__ceil): Removed.
* sysdeps/x86_64/ fpu/multiarch/ s_ceilf. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_ceilf- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__ceilf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ s_floor. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_floor- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__floor): Removed.
* sysdeps/x86_64/ fpu/multiarch/ s_floorf. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_floorf- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__floorf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ s_nearbyint. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_nearbyint- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__nearbyint): Removed.
* sysdeps/x86_64/ fpu/multiarch/ s_nearbyintf. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_nearbyintf- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__nearbyintf): Removed.
* sysdeps/x86_64/ fpu/multiarch/ s_rint. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_rint- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__rint): Removed.
* sysdeps/x86_64/ fpu/multiarch/ s_rintf. S: Renamed to ...
* sysdeps/x86_64/ fpu/multiarch/ s_rintf- sse4_1. S: This. Don't
include <machine/asm.h> nor <init-arch.h>. Include <sysdep.h>.
(__rintf): Removed. - 1e8e527... by "H.J. Lu" <email address hidden>
-
i386: Support static PIE in start.S
Since start.o may be compiled as PIC, we should check PIC instead of
SHARED. Also avoid dynamic relocation against main in static PIE since
_start is the entry point before the executable is relocated.* sysdeps/
i386/start. S (_start): Check Check PIC instead of
SHARED. Avoid dynamic relocation against main in static PIE. - e13daad... by "H.J. Lu" <email address hidden>
-
Compile tst-prelink.c without PIE [BZ #21815]
tst-prelink.c checks for conflict with GLOB_DAT relocation against stdio.
On i386, there is no GLOB_DAT relocation against stdio with PIE. We
should compile tst-prelink.c without PIE.[BZ #21815]
* elf/Makefile (CFLAGS-tst-prelink. c): New.
(LDFLAGS-tst-prelink) : Likewise. - 627c69c... by "H.J. Lu" <email address hidden>
-
i386: Update I386_USE_SYSENTER for early PIC syscall
Define I386_USE_SYSENTER to 0 or 1 so that special versions of syscalls
with "int $0x80" can be provided for static PIE during self relocation.
Also check PIC instead SHARED for PIC version of syscall macros.* sysdeps/
unix/sysv/ linux/i386/ sysdep. h (I386_USE_ SYSENTER) :
Define to I386_USE_SYSENTER to 0 or 1 if not defined.
(ENTER_KERNEL): Check if I386_USE_SYSENTER is 1 and check PIC.
(INTERNAL_SYSCALL_ MAIN_INLINE) : Likewise.
(INTERNAL_SYSCALL_ NCS): Likewise.
(LOADARGS_1): Likewise.
(LOADARGS_5): Likewise.
(RESTOREARGS_1): Likewise.
(RESTOREARGS_5): Likewise.