| 
									
										
										
										
											2001-09-19 10:37:31 +00:00
										 |  |  | # The i387 `long double' is a distinct type we support.
 | 
					
						
							|  |  |  | long-double-fcts = yes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(subdir),csu) | 
					
						
							| 
									
										
										
										
											2009-07-10 19:04:14 +00:00
										 |  |  | gen-as-const-headers += link-defines.sym | 
					
						
							| 
									
										
										
										
											2001-09-19 10:37:31 +00:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2002-08-21 07:57:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(subdir),gmon) | 
					
						
							|  |  |  | sysdep_routines += _mcount | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2007-05-21 19:21:48 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-17 16:55:25 +00:00
										 |  |  | ifeq ($(subdir),malloc) | 
					
						
							|  |  |  | tests += tst-mallocalign1 | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-21 19:21:48 +00:00
										 |  |  | ifeq ($(subdir),string) | 
					
						
							| 
									
										
										
										
											2010-08-15 05:04:01 +00:00
										 |  |  | sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii | 
					
						
							| 
									
										
										
										
											2010-07-30 07:14:04 +00:00
										 |  |  | gen-as-const-headers += locale-defines.sym | 
					
						
							| 
									
										
										
										
											2007-05-21 19:21:48 +00: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 05:41:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(subdir),elf) | 
					
						
							|  |  |  | sysdep-dl-routines += tlsdesc dl-tlsdesc | 
					
						
							| 
									
										
										
										
											2009-07-26 23:10:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-05-11 00:05:06 +00: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 19:23:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-13 18:10:22 +00:00
										 |  |  | tests += tst-audit3 tst-audit4 tst-audit5 tst-audit10 | 
					
						
							| 
									
										
										
										
											2013-04-25 19:23:11 +00: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 18:10:22 +00:00
										 |  |  | 		tst-auditmod7a tst-auditmod7b \
 | 
					
						
							|  |  |  | 		tst-auditmod10a tst-auditmod10b | 
					
						
							| 
									
										
										
										
											2013-04-25 19:23:11 +00: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 18:10:22 +00: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 19:23:11 +00: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 18:10:22 +00: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 05:41:30 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(subdir),csu) | 
					
						
							|  |  |  | gen-as-const-headers += tlsdesc.sym | 
					
						
							|  |  |  | endif |