1 # Expect script
for TLS tests.
2 # Copyright
(C
) 2017-2025 Free Software Foundation
, Inc.
4 # This file is part of the GNU Binutils.
6 # This
program is free software
; you can redistribute it and
/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation
; either version
3 of the License
, or
9 #
(at your option
) any later version.
11 # This
program is distributed in the hope that it will be useful
,
12 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License
for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this
program; if not
, write to the Free Software
18 # Foundation
, Inc.
, 51 Franklin Street
- Fifth Floor
, Boston
,
22 # Make sure that binutils can correctly handle TLS.
24 if { !([istarget
*-*-linux
*]
25 ||
[istarget arm
*-*-uclinuxfdpiceabi
]
26 ||
[istarget
*-*-nacl
*]
27 ||
[istarget
*-*-gnu
*]) ||
[istarget
*ecoff
] } then {
31 # Check to see
if the C compiler works.
32 if { ![check_compiler_available
] } {
36 # This target requires extra GAS options when building PIC
/PIE code.
38 if [istarget
"sparc*-*-*"] {
39 append AFLAGS_PIC
" -K PIC -Av9"
40 } elseif
[istarget ia64
-*-*] {
41 append AFLAGS_PIC
" -x"
44 set ldflags
"-pie -e _start -z text"
45 if [istarget arm
*-*-*] {
46 append ldflags
" --defsym __aeabi_read_tp=0"
47 } elseif
[istarget m68
*-*-*] {
48 append ldflags
" --defsym __m68k_read_tp=0"
49 } elseif
[istarget microblaze
-*-*] {
50 append ldflags
" --defsym __tls_get_addr=0"
53 run_ld_link_tests
[list \
59 { pr22263
-1a.c pr22263
-1b.c
} \
62 "-fPIE -O2 $NOSANITIZE_CFLAGS" \
66 if [file
exists tmpdir
/pr22263
-1] {
67 run_ld_link_tests
[list \
69 "pr22263-1 tprel optimisation" \
71 "tmpdir/pr22263-1a.o tmpdir/pr22263-1b.o" \
74 {{readelf
-r pr22263
-1.rd
}} \
78 ] ia64
-*-* m68
*-*-* s390
-*-* sh
*-*-*