aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorDave Korn <dave.korn@artimi.com>2009-05-19 16:08:08 +0000
committerDave Korn <dave.korn@artimi.com>2009-05-19 16:08:08 +0000
commitc1711530e652a14bc0df9b603c73e350b5dfe5ec (patch)
treef0e82c9c384277dc508547d786bbc912eac7edf8 /gas/testsuite
parentfbdebf465713844d23625ae09e0ae4995418328b (diff)
downloadfsf-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/ChangeLog14
-rwxr-xr-xgas/testsuite/gas/pe/aligncomm-a.d12
-rwxr-xr-xgas/testsuite/gas/pe/aligncomm-a.s11
-rwxr-xr-xgas/testsuite/gas/pe/aligncomm-b.d16
-rw-r--r--gas/testsuite/gas/pe/aligncomm-b.s11
-rwxr-xr-xgas/testsuite/gas/pe/aligncomm-c.d8
-rwxr-xr-xgas/testsuite/gas/pe/aligncomm-c.s5
-rwxr-xr-xgas/testsuite/gas/pe/aligncomm-d.d12
-rwxr-xr-xgas/testsuite/gas/pe/aligncomm-d.s5
-rwxr-xr-xgas/testsuite/gas/pe/pe.exp34
-rw-r--r--gas/testsuite/lib/gas-defs.exp12
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]]