diff options
author | Dave Korn <dave.korn@artimi.com> | 2009-05-19 16:08:08 +0000 |
---|---|---|
committer | Dave Korn <dave.korn@artimi.com> | 2009-05-19 16:08:08 +0000 |
commit | c1711530e652a14bc0df9b603c73e350b5dfe5ec (patch) | |
tree | f0e82c9c384277dc508547d786bbc912eac7edf8 /gas/testsuite | |
parent | fbdebf465713844d23625ae09e0ae4995418328b (diff) | |
download | fsf-binutils-gdb-c1711530e652a14bc0df9b603c73e350b5dfe5ec.zip fsf-binutils-gdb-c1711530e652a14bc0df9b603c73e350b5dfe5ec.tar.gz fsf-binutils-gdb-c1711530e652a14bc0df9b603c73e350b5dfe5ec.tar.bz2 |
==> bfd/ChangeLog <==
2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com>
* cofflink.c (process_embedded_commands): Ignore "-aligncomm".
==> gas/ChangeLog <==
2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com>
* NEWS: Mention new feature.
* config/obj-coff.c (obj_coff_common_parse): New function.
(obj_coff_comm): Likewise.
(coff_pseudo_table): Override default ".comm" definition on PE.
* doc/as.texinfo: Document new feature.
==> gas/testsuite/ChangeLog <==
2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com>
* gas/pe/: New directory for PE format-specific tests.
* gas/pe/aligncomm-a.d: New test pattern file.
* gas/pe/aligncomm-a.s: New test source file.
* gas/pe/aligncomm-b.d: New test pattern file.
* gas/pe/aligncomm-b.s: New test source file.
* gas/pe/aligncomm-c.d: New test pattern file.
* gas/pe/aligncomm-c.s: New test source file.
* gas/pe/aligncomm-d.d: New test pattern file.
* gas/pe/aligncomm-d.s: New test source file.
* gas/pe/pe.exp: New test control script.
* lib/gas-defs.exp (is_pecoff_format): New function.
==> ld/ChangeLog <==
2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com>
* NEWS: Mention new feature.
* deffile.h (def_file_aligncomm): Add new struct definition.
(def_file): Add new def_file_aligncomm member.
* deffilep.y (%token): Add new ALIGNCOMM token.
(command): Add production rule for ALIGNCOMM.
(def_file_free): Free any chained def_file_aligncomm structs.
(diropts[]): Add entry for '-aligncomm' .drectve command.
(def_aligncomm): New grammar function.
* ld.texinfo: Document new feature.
* pe-dll.c (process_def_file): Rename from this ...
(process_def_file_and_drectve): ... to this, updating all callers,
and process any aligncomms chained to the def file after scanning
all .drectve sections.
(generate_edata): Updated to match.
(pe_dll_build_sections): Likewise.
==> ld/testsuite/ChangeLog <==
2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com>
* ld-pe/aligncomm-1.c: New test source file.
* ld-pe/aligncomm-2.c: Likewise.
* ld-pe/aligncomm-3.c: Likewise.
* ld-pe/aligncomm-4.c: Likewise.
* ld-pe/aligncomm.d: New test pattern file.
* ld-pe/direct.exp: Deleted, and content moved into ...
* ld-pe/pe-run.exp: ... New common file for all PE run tests.
* ld-pe/vers-script.exp: Deleted, and content merged into ...
* ld-pe/pe-compile.exp: ... New common file for PE tests needing
a compiler, adding aligned common tests.
* ld-pe/pe.exp: Update header comment.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 14 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/aligncomm-a.d | 12 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/aligncomm-a.s | 11 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/aligncomm-b.d | 16 | ||||
-rw-r--r-- | gas/testsuite/gas/pe/aligncomm-b.s | 11 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/aligncomm-c.d | 8 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/aligncomm-c.s | 5 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/aligncomm-d.d | 12 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/aligncomm-d.s | 5 | ||||
-rwxr-xr-x | gas/testsuite/gas/pe/pe.exp | 34 | ||||
-rw-r--r-- | gas/testsuite/lib/gas-defs.exp | 12 |
11 files changed, 140 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index d8b6e49..e5c8a4c 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,17 @@ +2009-05-19 Dave Korn <dave.korn.cygwin@gmail.com> + + * gas/pe/: New directory for PE format-specific tests. + * gas/pe/aligncomm-a.d: New test pattern file. + * gas/pe/aligncomm-a.s: New test source file. + * gas/pe/aligncomm-b.d: New test pattern file. + * gas/pe/aligncomm-b.s: New test source file. + * gas/pe/aligncomm-c.d: New test pattern file. + * gas/pe/aligncomm-c.s: New test source file. + * gas/pe/aligncomm-d.d: New test pattern file. + * gas/pe/aligncomm-d.s: New test source file. + * gas/pe/pe.exp: New test control script. + * lib/gas-defs.exp (is_pecoff_format): New function. + 2009-05-05 H.J. Lu <hongjiu.lu@intel.com> * gas/lns/lns-common-1-ia64.s: Add test for discriminator. diff --git a/gas/testsuite/gas/pe/aligncomm-a.d b/gas/testsuite/gas/pe/aligncomm-a.d new file mode 100755 index 0000000..21cad88 --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-a.d @@ -0,0 +1,12 @@ +#objdump: -s -j .drectve +#name: aligned common A + +# Test the aligned form of the .comm pseudo-op. + +.*: .* + +Contents of section .drectve: + 0000 202d616c 69676e63 6f6d6d3a 5f682c35 -aligncomm:_h,5 + 0010 202d616c 69676e63 6f6d6d3a 5f692c34 -aligncomm:_i,4 + 0020 202d616c 69676e63 6f6d6d3a 5f6a2c33 -aligncomm:_j,3 + 0030 202d616c 69676e63 6f6d6d3a 5f6b2c32 -aligncomm:_k,2 diff --git a/gas/testsuite/gas/pe/aligncomm-a.s b/gas/testsuite/gas/pe/aligncomm-a.s new file mode 100755 index 0000000..47bab4d --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-a.s @@ -0,0 +1,11 @@ + .file "a.c" + .comm _h, 16 + .comm _i, 16 + .comm _j, 16 + .comm _k, 16 + .section .drectve + .ascii " -aligncomm:_h,5" + .ascii " -aligncomm:_i,4" + .ascii " -aligncomm:_j,3" + .ascii " -aligncomm:_k,2" + diff --git a/gas/testsuite/gas/pe/aligncomm-b.d b/gas/testsuite/gas/pe/aligncomm-b.d new file mode 100755 index 0000000..9a162be --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-b.d @@ -0,0 +1,16 @@ +#objdump: -s -j .drectve +#name: aligned common B + +# Test the aligned form of the .comm pseudo-op. + +.*: .* + +Contents of section .drectve: + 0000 202d616c 69676e63 6f6d6d3a 5f682c38 -aligncomm:_h,8 + 0010 202d616c 69676e63 6f6d6d3a 5f692c34 -aligncomm:_i,4 + 0020 202d616c 69676e63 6f6d6d3a 5f6a2c32 -aligncomm:_j,2 + 0030 202d616c 69676e63 6f6d6d3a 5f6b2c31 -aligncomm:_k,1 + 0040 202d616c 69676e63 6f6d6d3a 5f682c35 -aligncomm:_h,5 + 0050 202d616c 69676e63 6f6d6d3a 5f692c34 -aligncomm:_i,4 + 0060 202d616c 69676e63 6f6d6d3a 5f6a2c33 -aligncomm:_j,3 + 0070 202d616c 69676e63 6f6d6d3a 5f6b2c32 -aligncomm:_k,2 diff --git a/gas/testsuite/gas/pe/aligncomm-b.s b/gas/testsuite/gas/pe/aligncomm-b.s new file mode 100644 index 0000000..29606e1 --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-b.s @@ -0,0 +1,11 @@ + .file "a.c" + .comm _h, 16, 8 + .comm _i, 16, 4 + .comm _j, 16, 2 + .comm _k, 16, 1 + .section .drectve + .ascii " -aligncomm:_h,5" + .ascii " -aligncomm:_i,4" + .ascii " -aligncomm:_j,3" + .ascii " -aligncomm:_k,2" + diff --git a/gas/testsuite/gas/pe/aligncomm-c.d b/gas/testsuite/gas/pe/aligncomm-c.d new file mode 100755 index 0000000..f9dc3a8 --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-c.d @@ -0,0 +1,8 @@ +#objdump: -s -j .drectve +#name: aligned common C + +# Test the aligned form of the .comm pseudo-op. + +.*: .* + +# No .drectve section emitted.
\ No newline at end of file diff --git a/gas/testsuite/gas/pe/aligncomm-c.s b/gas/testsuite/gas/pe/aligncomm-c.s new file mode 100755 index 0000000..154b4bd --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-c.s @@ -0,0 +1,5 @@ + .file "a.c" + .comm _h, 16 + .comm _i, 16 + .comm _j, 16 + .comm _k, 16 diff --git a/gas/testsuite/gas/pe/aligncomm-d.d b/gas/testsuite/gas/pe/aligncomm-d.d new file mode 100755 index 0000000..639d057 --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-d.d @@ -0,0 +1,12 @@ +#objdump: -s -j .drectve +#name: aligned common D + +# Test the aligned form of the .comm pseudo-op. + +.*: .* + +Contents of section .drectve: + 0000 202d616c 69676e63 6f6d6d3a 5f682c38 -aligncomm:_h,8 + 0010 202d616c 69676e63 6f6d6d3a 5f692c34 -aligncomm:_i,4 + 0020 202d616c 69676e63 6f6d6d3a 5f6a2c32 -aligncomm:_j,2 + 0030 202d616c 69676e63 6f6d6d3a 5f6b2c31 -aligncomm:_k,1 diff --git a/gas/testsuite/gas/pe/aligncomm-d.s b/gas/testsuite/gas/pe/aligncomm-d.s new file mode 100755 index 0000000..bf2b397 --- /dev/null +++ b/gas/testsuite/gas/pe/aligncomm-d.s @@ -0,0 +1,5 @@ + .file "a.c" + .comm _h, 16, 8 + .comm _i, 16, 4 + .comm _j, 16, 2 + .comm _k, 16, 1 diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp new file mode 100755 index 0000000..87e2a3e --- /dev/null +++ b/gas/testsuite/gas/pe/pe.exp @@ -0,0 +1,34 @@ +# Expect control script for GAS testsuite PE object-format-specific tests. + +# Copyright (C) 2009 +# Free Software Foundation, Inc. + +# 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. + +# Please email any bugs, comments, and/or additions to this file to: +# binutils@gnu.org + +load_lib gas-dg.exp +load_lib gas-defs.exp + +# These tests can only be run on PE/COFF platforms. +if {![is_pecoff_format]} { + return +} + +run_dump_test "aligncomm-a" +run_dump_test "aligncomm-b" +run_dump_test "aligncomm-c" +run_dump_test "aligncomm-d" diff --git a/gas/testsuite/lib/gas-defs.exp b/gas/testsuite/lib/gas-defs.exp index 1e02847..5eda00a 100644 --- a/gas/testsuite/lib/gas-defs.exp +++ b/gas/testsuite/lib/gas-defs.exp @@ -310,6 +310,18 @@ proc is_elf_format {} { return 1 } +# True if the object format is known to be PE COFF. +# +proc is_pecoff_format {} { + if { ![istarget *-*-mingw*] \ + && ![istarget *-*-cygwin*] \ + && ![istarget *-*-pe*] } { + return 0 + } + + return 1 +} + # run_dump_tests TESTCASES EXTRA_OPTIONS # Wrapper for run_dump_test, which is suitable for invoking as # run_dump_tests [lsort [glob -nocomplain $srcdir/$subdir/*.d]] |