2001-09-19 12:37:31 +02:00
|
|
|
# The i387 `long double' is a distinct type we support.
|
|
|
|
long-double-fcts = yes
|
|
|
|
|
|
|
|
ifeq ($(subdir),csu)
|
2009-07-10 21:04:14 +02:00
|
|
|
gen-as-const-headers += link-defines.sym
|
2001-09-19 12:37:31 +02:00
|
|
|
endif
|
2002-08-21 09:57:48 +02:00
|
|
|
|
|
|
|
ifeq ($(subdir),gmon)
|
|
|
|
sysdep_routines += _mcount
|
|
|
|
endif
|
2007-05-21 21:21:48 +02:00
|
|
|
|
2012-05-17 18:55:25 +02:00
|
|
|
ifeq ($(subdir),malloc)
|
|
|
|
tests += tst-mallocalign1
|
|
|
|
endif
|
|
|
|
|
2007-05-21 21:21:48 +02:00
|
|
|
ifeq ($(subdir),string)
|
2010-08-15 07:04:01 +02:00
|
|
|
sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii
|
2010-07-30 09:14:04 +02:00
|
|
|
gen-as-const-headers += locale-defines.sym
|
2007-05-21 21:21:48 +02:00
|
|
|
endif
|
Introduce TLS descriptors for i386 and x86_64.
* include/inline-hashtab.h: New file, copied from 2005's
libiberty, with fix for memory leak imported afterwards by
Glauber de Oliveira Costa.
* elf/tlsdeschtab.h: New file.
* elf/dl-reloc.c (_dl_try_allocate_static_tls): Extract from...
(_dl_allocate_static_tls): ... here. Rearrange failure path.
(CHECK_STATIC_TLS): Move to...
* elf/dynamic-link.h: ... this file.
(TRY_STATIC_TLS): New macro.
* elf/dl-conflict.c (CHECK_STATIC_TLS, TRY_STATIC_TLS): Override.
* elf/elf.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL,
R_386_TLS_DESC): Define.
(R_X86_64_PC64, R_X86_GOTOFF64, R_X86_64_GOTPC32): Merge from
binutils.
(R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
R_X86_64_TLSDESC): Define.
(R_386_NUM, R_X86_64_NUM): Adjust.
* sysdeps/i386/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/i386/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/i386/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_type_class): Mark R_386_TLS_DESC as PLT class.
(elf_machine_rel): Handle R_386_TLS_DESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
(elf_machine_lazy_rela): Likewise.
* sysdeps/i386/dl-tls.h (struct dl_tls_index): Name it.
* sysdeps/i386/dl-tlsdesc.S: New file.
* sysdeps/i386/dl-tlsdesc.h: New file.
* sysdeps/i386/tlsdesc.c: New file.
* sysdeps/i386/tlsdesc.sym: New file.
* sysdeps/i386/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table.
* sysdeps/x86_64/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/x86_64/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/x86_64/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_runtime_setup): Set up lazy TLSDESC GOT entry.
(elf_machine_type_class): Mark R_X86_64_TLSDESC as PLT class.
(elf_machine_rel): Handle R_X86_64_TLSDESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
* sysdeps/x86_64/dl-tls.h (struct dl_tls_index): Name it.
(__tls_get_addr): Do not declare for non-shared compiles.
* sysdeps/x86_64/dl-tlsdesc.S: New file.
* sysdeps/x86_64/dl-tlsdesc.h: New file.
* sysdeps/x86_64/tlsdesc.c: New file.
* sysdeps/x86_64/tlsdesc.sym: New file.
* sysdeps/x86_64/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table for both 32- and 64-bit structs.
2008-05-13 07:41:30 +02:00
|
|
|
|
|
|
|
ifeq ($(subdir),elf)
|
|
|
|
sysdep-dl-routines += tlsdesc dl-tlsdesc
|
|
|
|
sysdep_routines += tlsdesc dl-tlsdesc
|
|
|
|
sysdep-rtld-routines += tlsdesc dl-tlsdesc
|
2009-07-27 01:10:00 +02:00
|
|
|
|
2012-05-11 02:05:06 +02:00
|
|
|
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)
|
|
|
|
|
|
|
|
$(objpfx)tst-quad1pie: $(objpfx)tst-quadmod1pie.o
|
|
|
|
$(objpfx)tst-quad2pie: $(objpfx)tst-quadmod2pie.o
|
2013-04-25 21:23:11 +02:00
|
|
|
|
2014-03-13 19:10:22 +01:00
|
|
|
tests += tst-audit3 tst-audit4 tst-audit5 tst-audit10
|
2013-04-25 21:23:11 +02:00
|
|
|
ifeq (yes,$(config-cflags-avx))
|
|
|
|
tests += tst-audit6 tst-audit7
|
|
|
|
endif
|
|
|
|
modules-names += tst-auditmod3a tst-auditmod3b \
|
|
|
|
tst-auditmod4a tst-auditmod4b \
|
|
|
|
tst-auditmod5a tst-auditmod5b \
|
|
|
|
tst-auditmod6a tst-auditmod6b tst-auditmod6c \
|
2014-03-13 19:10:22 +01:00
|
|
|
tst-auditmod7a tst-auditmod7b \
|
|
|
|
tst-auditmod10a tst-auditmod10b
|
2013-04-25 21:23:11 +02:00
|
|
|
|
|
|
|
$(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-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
|
|
|
|
|
2014-03-13 19:10:22 +01:00
|
|
|
$(objpfx)tst-audit10: $(objpfx)tst-auditmod10a.so
|
|
|
|
$(objpfx)tst-audit10.out: $(objpfx)tst-auditmod10b.so
|
|
|
|
tst-audit10-ENV = LD_AUDIT=$(objpfx)tst-auditmod10b.so
|
|
|
|
|
2013-04-25 21:23:11 +02:00
|
|
|
ifeq (yes,$(config-cflags-avx))
|
|
|
|
AVX-CFLAGS=-mavx
|
|
|
|
ifeq (yes,$(config-cflags-novzeroupper))
|
|
|
|
AVX-CFLAGS+=-mno-vzeroupper
|
|
|
|
endif
|
|
|
|
CFLAGS-tst-audit4.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)
|
|
|
|
endif
|
2014-03-13 19:10:22 +01:00
|
|
|
ifeq (yes,$(config-cflags-avx512))
|
|
|
|
AVX512-CFLAGS = -mavx512f
|
|
|
|
CFLAGS-tst-audit10.c += $(AVX512-CFLAGS)
|
|
|
|
CFLAGS-tst-auditmod10a.c += $(AVX512-CFLAGS)
|
|
|
|
CFLAGS-tst-auditmod10b.c += $(AVX512-CFLAGS)
|
|
|
|
endif
|
Introduce TLS descriptors for i386 and x86_64.
* include/inline-hashtab.h: New file, copied from 2005's
libiberty, with fix for memory leak imported afterwards by
Glauber de Oliveira Costa.
* elf/tlsdeschtab.h: New file.
* elf/dl-reloc.c (_dl_try_allocate_static_tls): Extract from...
(_dl_allocate_static_tls): ... here. Rearrange failure path.
(CHECK_STATIC_TLS): Move to...
* elf/dynamic-link.h: ... this file.
(TRY_STATIC_TLS): New macro.
* elf/dl-conflict.c (CHECK_STATIC_TLS, TRY_STATIC_TLS): Override.
* elf/elf.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL,
R_386_TLS_DESC): Define.
(R_X86_64_PC64, R_X86_GOTOFF64, R_X86_64_GOTPC32): Merge from
binutils.
(R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
R_X86_64_TLSDESC): Define.
(R_386_NUM, R_X86_64_NUM): Adjust.
* sysdeps/i386/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/i386/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/i386/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_type_class): Mark R_386_TLS_DESC as PLT class.
(elf_machine_rel): Handle R_386_TLS_DESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
(elf_machine_lazy_rela): Likewise.
* sysdeps/i386/dl-tls.h (struct dl_tls_index): Name it.
* sysdeps/i386/dl-tlsdesc.S: New file.
* sysdeps/i386/dl-tlsdesc.h: New file.
* sysdeps/i386/tlsdesc.c: New file.
* sysdeps/i386/tlsdesc.sym: New file.
* sysdeps/i386/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table.
* sysdeps/x86_64/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/x86_64/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/x86_64/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_runtime_setup): Set up lazy TLSDESC GOT entry.
(elf_machine_type_class): Mark R_X86_64_TLSDESC as PLT class.
(elf_machine_rel): Handle R_X86_64_TLSDESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
* sysdeps/x86_64/dl-tls.h (struct dl_tls_index): Name it.
(__tls_get_addr): Do not declare for non-shared compiles.
* sysdeps/x86_64/dl-tlsdesc.S: New file.
* sysdeps/x86_64/dl-tlsdesc.h: New file.
* sysdeps/x86_64/tlsdesc.c: New file.
* sysdeps/x86_64/tlsdesc.sym: New file.
* sysdeps/x86_64/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table for both 32- and 64-bit structs.
2008-05-13 07:41:30 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(subdir),csu)
|
|
|
|
gen-as-const-headers += tlsdesc.sym
|
|
|
|
endif
|