diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2004-03-05 11:26:05 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@codesourcery.com> | 2004-03-05 11:26:05 +0000 |
commit | e5caec89a06646ebc0324b1860fb3ff35c60f784 (patch) | |
tree | 570d52e83f0cc3deb8a7bc8f00e261adbf880b17 /ld/testsuite | |
parent | 52b5e991eec325c9ecea3229d584636b78b4a633 (diff) | |
download | ppe42-binutils-e5caec89a06646ebc0324b1860fb3ff35c60f784.tar.gz ppe42-binutils-e5caec89a06646ebc0324b1860fb3ff35c60f784.zip |
* 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.
Diffstat (limited to 'ld/testsuite')
-rw-r--r-- | ld/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/size-1.d | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/size-1.s | 15 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/size-1.t | 15 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/size-2.d | 20 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/size-2.s | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/size-2.t | 21 | ||||
-rw-r--r-- | ld/testsuite/ld-scripts/size.exp | 23 |
8 files changed, 124 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 5a33cfff6e..18c66f4612 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-03-05 Nathan Sidwell <nathan@codesourcery.com> + + * ld-scripts/size.exp: New. + * ld-scripts/size-[12].{d,s,t}: New. + 2004-03-01 Richard Sandiford <rsandifo@redhat.com> * ld-frv/fr450-link[abc].s, fr450-link.d: New test. diff --git a/ld/testsuite/ld-scripts/size-1.d b/ld/testsuite/ld-scripts/size-1.d new file mode 100644 index 0000000000..667f5317db --- /dev/null +++ b/ld/testsuite/ld-scripts/size-1.d @@ -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)? .... diff --git a/ld/testsuite/ld-scripts/size-1.s b/ld/testsuite/ld-scripts/size-1.s new file mode 100644 index 0000000000..53721fa4a0 --- /dev/null +++ b/ld/testsuite/ld-scripts/size-1.s @@ -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 diff --git a/ld/testsuite/ld-scripts/size-1.t b/ld/testsuite/ld-scripts/size-1.t new file mode 100644 index 0000000000..8582840336 --- /dev/null +++ b/ld/testsuite/ld-scripts/size-1.t @@ -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)) + } +} diff --git a/ld/testsuite/ld-scripts/size-2.d b/ld/testsuite/ld-scripts/size-2.d new file mode 100644 index 0000000000..3cbfb447d9 --- /dev/null +++ b/ld/testsuite/ld-scripts/size-2.d @@ -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 diff --git a/ld/testsuite/ld-scripts/size-2.s b/ld/testsuite/ld-scripts/size-2.s new file mode 100644 index 0000000000..eba3224c6f --- /dev/null +++ b/ld/testsuite/ld-scripts/size-2.s @@ -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 diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t new file mode 100644 index 0000000000..3549321de1 --- /dev/null +++ b/ld/testsuite/ld-scripts/size-2.t @@ -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 +} diff --git a/ld/testsuite/ld-scripts/size.exp b/ld/testsuite/ld-scripts/size.exp new file mode 100644 index 0000000000..5fff2bd879 --- /dev/null +++ b/ld/testsuite/ld-scripts/size.exp @@ -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 +} |