* elf.c (map_sections_to_segments): Ignore .tbss sections for

layout purposes.

	* ldlang.c (lang_add_section): Don't force SEC_LOAD on
	SEC_THREAD_LOCAL.
	(IGNORE_SECTION): Ignore .tbss sections too.
	(lang_size_sections_1): .tbss sections do not advance dot.

	* ld-scripts/size.exp: New.
	* ld-scripts/size-[12].{d,s,t}: New.
This commit is contained in:
Nathan Sidwell
2004-03-05 11:26:05 +00:00
parent 52b5e991ee
commit e5caec89a0
12 changed files with 151 additions and 12 deletions

View File

@@ -0,0 +1,16 @@
#source: size-1.s
#ld: -T size-1.t
#objdump: -s
.*: file format .*
Contents of section \.text:
0+00 (01)?000000(01)? (02)?000000(02)? ........
Contents of section \.data:
0+08 (03)?000000(03)? (04)?000000(04)? (05)?000000(05)? ............
Contents of section \.tdata:
0+24 (06)?000000 07000000 08000000 09000000 ................
0+34 (0a)?000000 ....
Contents of section \.map:
0+38 (08)?000000(08)? (0c)?000000(0c)? (10)?000000(10)? (14)?000000(14)? ................
0+48 (18)?000000(18)? ....

View File

@@ -0,0 +1,15 @@
.section .text,"ax",@progbits
.long 1,2
.section .data,"aw",@progbits
.long 3,4,5
.section .bss,"aw",@nobits
.long 0,0,0,0
# thread local storage sections
.section .tdata,"awT",@progbits
.long 6,7,8,9,10
.section .tbss,"awT",@nobits
.long 0,0,0,0,0,0

View File

@@ -0,0 +1,15 @@
SECTIONS
{
.text : { *(.text) }
.data : { *(.data) }
.bss : { *(.bss) }
.tdata : { *(.tdata) }
.tbss : { *(.tbss) }
.map : {
LONG (SIZEOF (.text))
LONG (SIZEOF (.data))
LONG (SIZEOF (.bss))
LONG (SIZEOF (.tdata))
LONG (SIZEOF (.tbss))
}
}

View File

@@ -0,0 +1,20 @@
#source: size-2.s
#ld: -T size-2.t
#readelf: -l
#...
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
PHDR 0x[0-9a-f]+ 0x0+0000 0x0+0000
0x[0-9a-f]+ 0x[0-9a-f]+ R .
LOAD 0x[0-9a-f]+ 0x0+0000 0x0+0000
0x0+0030 0x0+0030 R [0-9a-f]+
TLS 0x[0-9a-f]+ 0x0+0008 0x0+0008
0x0+0014 0x0+002c R [0-9a-f]+
Section to Segment mapping:
Segment Sections...
00 \.text \.tdata \.tbss \.map
01 \.text \.tdata \.map
02 \.tdata \.tbss \.map

View File

@@ -0,0 +1,9 @@
.section .text,"ax",@progbits
.long 1,2
# thread local storage sections
.section .tdata,"awT",@progbits
.long 6,7,8,9,10
.section .tbss,"awT",@nobits
.long 0,0,0,0,0,0

View File

@@ -0,0 +1,21 @@
PHDRS
{
header PT_PHDR FILEHDR PHDRS ;
image PT_LOAD FLAGS (4);
tls PT_TLS FLAGS (4);
}
SECTIONS
{
.text : { *(.text) } :image
.tdata : { *(.tdata) } :image :tls
.tbss : { *(.tbss) } :image : tls
.map : {
LONG (SIZEOF (.text))
LONG (SIZEOF (.data))
LONG (SIZEOF (.bss))
LONG (SIZEOF (.tdata))
LONG (SIZEOF (.tbss))
} :image
}

View File

@@ -0,0 +1,23 @@
# Expect script for SIZEOF tests
# Copyright (C) 2004 Free Software Foundation
#
# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
run_dump_test size-1
if { [istarget "*-*-elf*"] } {
run_dump_test size-2
}