mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 22:40:05 +00:00
3403a17fea
On x86-64, _dl_runtime_resolve must preserve the first 8 vector registers. Add 3 _dl_runtime_resolve tests to verify that SSE, AVX and AVX512 registers are preserved. * sysdeps/x86_64/Makefile (tests): Add tst-sse, tst-avx and tst-avx512. (test-extras): Add tst-avx-aux and tst-avx512-aux. (extra-test-objs): Add tst-avx-aux.o and tst-avx512-aux.o. (modules-names): Add tst-ssemod, tst-avxmod and tst-avx512mod. ($(objpfx)tst-sse): New rule. ($(objpfx)tst-avx): Likewise. ($(objpfx)tst-avx512): Likewise. (CFLAGS-tst-avx-aux.c): New. (CFLAGS-tst-avxmod.c): Likewise. (CFLAGS-tst-avx512-aux.c): Likewise. (CFLAGS-tst-avx512mod.c): Likewise. * sysdeps/x86_64/tst-avx-aux.c: New file. * sysdeps/x86_64/tst-avx.c: Likewise. * sysdeps/x86_64/tst-avx512-aux.c: Likewise. * sysdeps/x86_64/tst-avx512.c: Likewise. * sysdeps/x86_64/tst-avx512mod.c: Likewise. * sysdeps/x86_64/tst-avxmod.c: Likewise. * sysdeps/x86_64/tst-sse.c: Likewise. * sysdeps/x86_64/tst-ssemod.c: Likewise.
125 lines
4.0 KiB
Makefile
125 lines
4.0 KiB
Makefile
# The i387 `long double' is a distinct type we support.
|
|
long-double-fcts = yes
|
|
|
|
ifeq ($(subdir),csu)
|
|
gen-as-const-headers += link-defines.sym
|
|
endif
|
|
|
|
ifeq ($(subdir),gmon)
|
|
sysdep_routines += _mcount
|
|
# We cannot compile _mcount.S with -pg because that would create
|
|
# recursive calls when ENTRY is used. Just copy the normal static
|
|
# object.
|
|
sysdep_noprof += _mcount
|
|
endif
|
|
|
|
ifeq ($(subdir),malloc)
|
|
tests += tst-mallocalign1
|
|
endif
|
|
|
|
ifeq ($(subdir),string)
|
|
sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii
|
|
gen-as-const-headers += locale-defines.sym
|
|
endif
|
|
|
|
ifeq ($(subdir),elf)
|
|
# There is no good reason to use MMX in x86-64 ld.so with GCC.
|
|
CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
|
|
-mno-mmx)
|
|
|
|
sysdep-dl-routines += tlsdesc dl-tlsdesc
|
|
|
|
tests += ifuncmain8
|
|
modules-names += ifuncmod8
|
|
|
|
$(objpfx)ifuncmain8: $(objpfx)ifuncmod8.so
|
|
|
|
tests += tst-quad1 tst-quad2
|
|
modules-names += tst-quadmod1 tst-quadmod2
|
|
|
|
$(objpfx)tst-quad1: $(objpfx)tst-quadmod1.so
|
|
$(objpfx)tst-quad2: $(objpfx)tst-quadmod2.so
|
|
|
|
quad-pie-test += tst-quad1pie tst-quad2pie
|
|
tests += $(quad-pie-test)
|
|
tests-pie += $(quad-pie-test)
|
|
test-extras += tst-quadmod1pie tst-quadmod2pie
|
|
extra-test-objs += tst-quadmod1pie.o tst-quadmod2pie.o
|
|
|
|
$(objpfx)tst-quad1pie: $(objpfx)tst-quadmod1pie.o
|
|
$(objpfx)tst-quad2pie: $(objpfx)tst-quadmod2pie.o
|
|
|
|
CFLAGS-tst-quad1pie.c = $(PIE-ccflag)
|
|
CFLAGS-tst-quad2pie.c = $(PIE-ccflag)
|
|
|
|
tests += tst-audit3 tst-audit4 tst-audit5 tst-audit6 tst-audit7 \
|
|
tst-audit10 tst-sse tst-avx tst-avx512
|
|
test-extras += tst-audit4-aux tst-audit10-aux \
|
|
tst-avx-aux tst-avx512-aux
|
|
extra-test-objs += tst-audit4-aux.o tst-audit10-aux.o \
|
|
tst-avx-aux.o tst-avx512-aux.o
|
|
|
|
tests += tst-split-dynreloc
|
|
LDFLAGS-tst-split-dynreloc = -Wl,-T,$(..)sysdeps/x86_64/tst-split-dynreloc.lds
|
|
tst-split-dynreloc-ENV = LD_BIND_NOW=1
|
|
|
|
modules-names += tst-auditmod3a tst-auditmod3b \
|
|
tst-auditmod4a tst-auditmod4b \
|
|
tst-auditmod5a tst-auditmod5b \
|
|
tst-auditmod6a tst-auditmod6b tst-auditmod6c \
|
|
tst-auditmod7a tst-auditmod7b \
|
|
tst-auditmod10a tst-auditmod10b \
|
|
tst-ssemod tst-avxmod tst-avx512mod
|
|
|
|
$(objpfx)tst-audit3: $(objpfx)tst-auditmod3a.so
|
|
$(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so
|
|
tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so
|
|
|
|
$(objpfx)tst-audit4: $(objpfx)tst-audit4-aux.o $(objpfx)tst-auditmod4a.so
|
|
$(objpfx)tst-audit4.out: $(objpfx)tst-auditmod4b.so
|
|
tst-audit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod4b.so
|
|
|
|
$(objpfx)tst-audit5: $(objpfx)tst-auditmod5a.so
|
|
$(objpfx)tst-audit5.out: $(objpfx)tst-auditmod5b.so
|
|
tst-audit5-ENV = LD_AUDIT=$(objpfx)tst-auditmod5b.so
|
|
|
|
$(objpfx)tst-audit6: $(objpfx)tst-auditmod6a.so
|
|
$(objpfx)tst-audit6.out: $(objpfx)tst-auditmod6b.so \
|
|
$(objpfx)tst-auditmod6c.so
|
|
tst-audit6-ENV = LD_AUDIT=$(objpfx)tst-auditmod6b.so:$(objpfx)tst-auditmod6c.so
|
|
|
|
$(objpfx)tst-audit7: $(objpfx)tst-auditmod7a.so
|
|
$(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
|
|
tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so
|
|
|
|
$(objpfx)tst-audit10: $(objpfx)tst-audit10-aux.o $(objpfx)tst-auditmod10a.so
|
|
$(objpfx)tst-audit10.out: $(objpfx)tst-auditmod10b.so
|
|
tst-audit10-ENV = LD_AUDIT=$(objpfx)tst-auditmod10b.so
|
|
|
|
$(objpfx)tst-sse: $(objpfx)tst-ssemod.so
|
|
$(objpfx)tst-avx: $(objpfx)tst-avx-aux.o $(objpfx)tst-avxmod.so
|
|
$(objpfx)tst-avx512: $(objpfx)tst-avx512-aux.o $(objpfx)tst-avx512mod.so
|
|
|
|
AVX-CFLAGS=-mavx -mno-vzeroupper
|
|
CFLAGS-tst-audit4-aux.c += $(AVX-CFLAGS)
|
|
CFLAGS-tst-auditmod4a.c += $(AVX-CFLAGS)
|
|
CFLAGS-tst-auditmod4b.c += $(AVX-CFLAGS)
|
|
CFLAGS-tst-auditmod6b.c += $(AVX-CFLAGS)
|
|
CFLAGS-tst-auditmod6c.c += $(AVX-CFLAGS)
|
|
CFLAGS-tst-auditmod7b.c += $(AVX-CFLAGS)
|
|
CFLAGS-tst-avx-aux.c += $(AVX-CFLAGS)
|
|
CFLAGS-tst-avxmod.c += $(AVX-CFLAGS)
|
|
ifeq (yes,$(config-cflags-avx512))
|
|
AVX512-CFLAGS = -mavx512f
|
|
CFLAGS-tst-audit10-aux.c += $(AVX512-CFLAGS)
|
|
CFLAGS-tst-auditmod10a.c += $(AVX512-CFLAGS)
|
|
CFLAGS-tst-auditmod10b.c += $(AVX512-CFLAGS)
|
|
CFLAGS-tst-avx512-aux.c += $(AVX512-CFLAGS)
|
|
CFLAGS-tst-avx512mod.c += $(AVX512-CFLAGS)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(subdir),csu)
|
|
gen-as-const-headers += tlsdesc.sym
|
|
endif
|