diff options
author | Alan Modra <amodra@gmail.com> | 2009-05-15 14:22:36 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2009-05-15 14:22:36 +0000 |
commit | d127ecce68b9052033148696008a8a905f661301 (patch) | |
tree | c4b31acc130ee14648913fb99d0a280de36dcb3c /ld/testsuite/ld-pe | |
parent | 0643c12ee1f4e258e1efea52d46b4c4e67fc8f78 (diff) | |
download | gdb-d127ecce68b9052033148696008a8a905f661301.zip gdb-d127ecce68b9052033148696008a8a905f661301.tar.gz gdb-d127ecce68b9052033148696008a8a905f661301.tar.bz2 |
ld/
* ldlang.c (lang_output_section_statement_lookup): Add function
comment. Make "name" non-const. Ensure duplicate entries use
the same string, allowing simple comparison in hash bucket loop.
Tweak constraint check.
(next_matching_output_section_statement): New function.
* ldlang.h (lang_output_section_statement_lookup): Update.
(next_matching_output_section_statement): Declare.
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
combine orphan sections when input sections flags differ in
alloc or load.
* emultempl/pe.em: Formatting throughout.
(gld${EMULATION_NAME}_place_orphan): As for elf32.em.
* emultempl/pep.em: Formatting throughout.
(gld${EMULATION_NAME}_place_orphan): As for elf32.em.
ld/testsuite/
* ld-elf/orphan3.d, * ld-elf/orphan3a.s, * ld-elf/orphan3b.s,
* ld-elf/orphan3c.s, * ld-elf/orphan3d.s, * ld-elf/orphan3e.s,
* ld-elf/orphan3f.s: New test.
* ld-pe/orphan.d, * ld-pe/orphana.s, * ld-pe/orphanb.s,
* ld-pe/orphand.s, * ld-pe/orphane.s: New test.
* ld-pe/direct.exp: Use is_pecoff_format.
* ld-pe/longsecn.exp: Delete.
* ld-pe/pe.exp: Run new test and longsecn tests.
Diffstat (limited to 'ld/testsuite/ld-pe')
-rw-r--r-- | ld/testsuite/ld-pe/direct.exp | 4 | ||||
-rwxr-xr-x | ld/testsuite/ld-pe/longsecn.exp | 35 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/orphan.d | 13 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/orphana.s | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/orphanb.s | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/orphand.s | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/orphane.s | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-pe/pe.exp | 117 |
8 files changed, 93 insertions, 90 deletions
diff --git a/ld/testsuite/ld-pe/direct.exp b/ld/testsuite/ld-pe/direct.exp index 2af2bf7..b4bb629 100644 --- a/ld/testsuite/ld-pe/direct.exp +++ b/ld/testsuite/ld-pe/direct.exp @@ -49,9 +49,7 @@ # 7. run the produced executables # This test can only be run on PE/COFF platforms. -if { ![istarget *-*-cygwin*] - && ![istarget *-*-mingw*] - && ![istarget *-*-pe] } { +if {![is_pecoff_format]} { return } diff --git a/ld/testsuite/ld-pe/longsecn.exp b/ld/testsuite/ld-pe/longsecn.exp deleted file mode 100755 index 77de531..0000000 --- a/ld/testsuite/ld-pe/longsecn.exp +++ /dev/null @@ -1,35 +0,0 @@ -# Expect script for COFF long section name tests -# Copyright 2009 -# Free Software Foundation, Inc. -# -# This file is part of the GNU Binutils. -# -# This program 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 3 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. -# - -# This test can only be run on PE/COFF platforms. -if {![is_pecoff_format]} { - return -} - -run_dump_test "longsecn" - -run_dump_test "longsecn-1" -run_dump_test "longsecn-2" -run_dump_test "longsecn-3" -run_dump_test "longsecn-4" -run_dump_test "longsecn-5" - diff --git a/ld/testsuite/ld-pe/orphan.d b/ld/testsuite/ld-pe/orphan.d new file mode 100644 index 0000000..1bace6b --- /dev/null +++ b/ld/testsuite/ld-pe/orphan.d @@ -0,0 +1,13 @@ +#source: orphana.s +#source: orphanb.s +#source: orphand.s +#source: orphane.s +#ld: --file-align 1 --section-align 1 +#objdump: -h --wide + +#... + +0 +\.text .* + +1 +\.foo +0+8 .* + +2 +\.foo +0+8 .* + +3 +\.idata .* +#pass diff --git a/ld/testsuite/ld-pe/orphana.s b/ld/testsuite/ld-pe/orphana.s new file mode 100644 index 0000000..0fff05e --- /dev/null +++ b/ld/testsuite/ld-pe/orphana.s @@ -0,0 +1,8 @@ + .globl _mainCRTStartup + .globl _start + .text +_mainCRTStartup: +_start: + + .section .foo,"b" + .space 4 diff --git a/ld/testsuite/ld-pe/orphanb.s b/ld/testsuite/ld-pe/orphanb.s new file mode 100644 index 0000000..0738616 --- /dev/null +++ b/ld/testsuite/ld-pe/orphanb.s @@ -0,0 +1,2 @@ + .section .foo + .long 1 diff --git a/ld/testsuite/ld-pe/orphand.s b/ld/testsuite/ld-pe/orphand.s new file mode 100644 index 0000000..f0953ee --- /dev/null +++ b/ld/testsuite/ld-pe/orphand.s @@ -0,0 +1,2 @@ + .section .foo,"b" + .space 4 diff --git a/ld/testsuite/ld-pe/orphane.s b/ld/testsuite/ld-pe/orphane.s new file mode 100644 index 0000000..3f7e228 --- /dev/null +++ b/ld/testsuite/ld-pe/orphane.s @@ -0,0 +1,2 @@ + .section .foo + .long 4 diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index 2aa4d20..3cff6b4 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -1,52 +1,65 @@ -# Expect script for export table in executables tests
-# Copyright 2004, 2006, 2007
-# Free Software Foundation, Inc.
-#
-# This file is part of the GNU Binutils.
-#
-# This program 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 3 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.
-#
-
-# This test can only be run on PE/COFF platforms that support .secrel32.
-if { ![istarget i*86-*-cygwin*]
- && ![istarget i*86-*-pe]
- && ![istarget i*86-*-mingw*]
- && ![istarget x86_64-*-mingw*]
- && ![istarget arm-wince-pe] } {
- return
-}
-
-if {[istarget x86_64-*-mingw*] } {
- set pe_tests {
- {".secrel32" "" "" {secrel1.s secrel2.s}
- {{objdump -s secrel_64.d}} "secrel.x"}
- }
-} elseif {[istarget i*86-*-cygwin*] } {
- set pe_tests {
- {".secrel32" "--disable-auto-import" "" {secrel1.s secrel2.s}
- {{objdump -s secrel.d}} "secrel.x"}
- }
-} else {
- set pe_tests {
- {".secrel32" "" "" {secrel1.s secrel2.s}
- {{objdump -s secrel.d}} "secrel.x"}
- }
-}
-
-run_ld_link_tests $pe_tests
-
-run_dump_test "image_size"
-run_dump_test "export_dynamic_warning"
+# Expect script for export table in executables tests +# Copyright 2004, 2006, 2007 +# Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# This program 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 3 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. +# + +# These tests can only be run on PE/COFF platforms. +if {![is_pecoff_format]} { + return +} + +# This test can only be run on PE/COFF platforms that support .secrel32. +if {[istarget i*86-*-cygwin*] + || [istarget i*86-*-pe] + || [istarget i*86-*-mingw*] + || [istarget x86_64-*-mingw*] + || [istarget arm-wince-pe] } { + + if {[istarget x86_64-*-mingw*] } { + set pe_tests { + {".secrel32" "" "" {secrel1.s secrel2.s} + {{objdump -s secrel_64.d}} "secrel.x"} + } + } elseif {[istarget i*86-*-cygwin*] } { + set pe_tests { + {".secrel32" "--disable-auto-import" "" {secrel1.s secrel2.s} + {{objdump -s secrel.d}} "secrel.x"} + } + } else { + set pe_tests { + {".secrel32" "" "" {secrel1.s secrel2.s} + {{objdump -s secrel.d}} "secrel.x"} + } + } + + run_ld_link_tests $pe_tests +} + +run_dump_test "image_size" +run_dump_test "export_dynamic_warning" + +run_dump_test "longsecn" +run_dump_test "longsecn-1" +run_dump_test "longsecn-2" +run_dump_test "longsecn-3" +run_dump_test "longsecn-4" +run_dump_test "longsecn-5" + +run_dump_test "orphan" |