mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
* elflink.c (elf_link_add_object_symbols): Don't create .tcommon
section for relocatable link. * ld-elf/tls_common.exp: New test. * ld-elf/tls_common.s: New file.
This commit is contained in:
parent
e36284abcf
commit
6a4a0940e5
@ -1,3 +1,8 @@
|
||||
2006-06-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elflink.c (elf_link_add_object_symbols): Don't create .tcommon
|
||||
section for relocatable link.
|
||||
|
||||
2006-06-21 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf-bfd.h (struct elf_backend_data): Add
|
||||
|
@ -3621,7 +3621,8 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|
||||
goto error_free_vers;
|
||||
|
||||
if (isym->st_shndx == SHN_COMMON
|
||||
&& ELF_ST_TYPE (isym->st_info) == STT_TLS)
|
||||
&& ELF_ST_TYPE (isym->st_info) == STT_TLS
|
||||
&& !info->relocatable)
|
||||
{
|
||||
asection *tcomm = bfd_get_section_by_name (abfd, ".tcommon");
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2006-06-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* ld-elf/tls_common.exp: New test.
|
||||
* ld-elf/tls_common.s: New file.
|
||||
|
||||
2006-06-20 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ld-elf/eh1.d: Update for fewer program headers.
|
||||
|
70
ld/testsuite/ld-elf/tls_common.exp
Normal file
70
ld/testsuite/ld-elf/tls_common.exp
Normal file
@ -0,0 +1,70 @@
|
||||
# Expect script for .tls_common tests
|
||||
# Copyright 2006 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# Written by Jakub Jelinek (jakub@redhat.com)
|
||||
#
|
||||
|
||||
# Make sure that binutils can correctly handle ld output in ELF.
|
||||
|
||||
# Run on Linux only.
|
||||
if { ![istarget *-*-linux*] } {
|
||||
return
|
||||
}
|
||||
|
||||
if { [istarget *-*-linux*aout*]
|
||||
|| [istarget *-*-linux*oldld*] } {
|
||||
return
|
||||
}
|
||||
|
||||
global as
|
||||
global ld
|
||||
global READELF
|
||||
global srcdir
|
||||
global subdir
|
||||
global link_output
|
||||
|
||||
if { ![ld_assemble $as $srcdir/$subdir/tls_common.s tmpdir/tls_common.o ] } {
|
||||
unresolved "tls_common"
|
||||
return
|
||||
}
|
||||
|
||||
if { ![ld_simple_link $ld tmpdir/tls_common1.o "-r tmpdir/tls_common.o"] } {
|
||||
fail "tls_common"
|
||||
return
|
||||
}
|
||||
|
||||
if { ![ld_simple_link $ld tmpdir/tls_common "tmpdir/tls_common1.o"] } {
|
||||
if { [string match "*not supported*" $link_output]
|
||||
|| [string match "*unrecognized option*" $link_output] } {
|
||||
unsupported "$ld_options is not supported by this target"
|
||||
} elseif { [string match "*Warning*alignment*of common symbol*" $link_output] } {
|
||||
fail "tls_common"
|
||||
} else {
|
||||
unresolved "tls_common"
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
send_log "$READELF -l --wide tmpdir/tls_common\n"
|
||||
catch "exec $READELF -l --wide tmpdir/tls_common" readelf_output
|
||||
if ![string match "*TLS*0x000000 0x000004 R *" $readelf_output] then {
|
||||
send_log "$readelf_output\n"
|
||||
fail "tls_common"
|
||||
return
|
||||
}
|
||||
|
||||
pass "tls_common"
|
11
ld/testsuite/ld-elf/tls_common.s
Normal file
11
ld/testsuite/ld-elf/tls_common.s
Normal file
@ -0,0 +1,11 @@
|
||||
.globl main
|
||||
.globl start
|
||||
.globl _start
|
||||
.globl __start
|
||||
.text
|
||||
main:
|
||||
start:
|
||||
_start:
|
||||
__start:
|
||||
.byte 0
|
||||
.tls_common foo,4,4
|
Loading…
Reference in New Issue
Block a user