diff options
author | Doug Kwan <dougkwan@google.com> | 2010-05-13 02:41:15 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2010-05-13 02:41:15 +0000 |
commit | da59ad79a2bab290cca29440b8b1d7981aa2b983 (patch) | |
tree | 69474e22226b02e09ee1e7fbb6bb4a7ff3227ac5 /gold/testsuite | |
parent | 235f101c07d43aac6a5fcc167680ea691c9ee92a (diff) | |
download | gdb-da59ad79a2bab290cca29440b8b1d7981aa2b983.zip gdb-da59ad79a2bab290cca29440b8b1d7981aa2b983.tar.gz gdb-da59ad79a2bab290cca29440b8b1d7981aa2b983.tar.bz2 |
2010-05-12 Doug Kwan <dougkwan@google.com>
elfcpp/ChangeLog
* arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved,
Tag_FP_HP_extension, Tag_MPextension_use_legacy): Rename from
existing tags.
(Tag_undefined40, Tag_undefined41, Tag_MPextension_use,
Tag_undefined43): New tags.
(Targ_VFP_arch, Tag_ABI_align8_needed, TAG_ABI_align8_preserved,
Tag_VFP_HP_extension): Define aliases for backward compatiblity.
gold/ChangeLog
* arm.cc (Target_arm::do_finalize_sections): Create an empty
attributes section only if there no attributes section after merging.
(Target_arm::merge_object_attributes): Move value of
Tag_MPextension_use_legacy to that of Tag_MPextension_use.
Handle Tag_DIV_use and Tag_MPextension_use_legacy.
* testsuite/Makefile.am (check_SCRIPTS): Add arm_attr_merge.sh
(check_DATA): Add arm_attr_merge_6.stdout, arm_attr_merge_6r_stdout
and arm_attr_merge_7.stdout.
(arm_attr_merge_6.stdout, arm_attr_merge_6 arm_attr_merge_6a.o
arm_attr_merge_6b.o, arm_attr_merge_6r.stdout, arm_attr_merge_6r,
arm_attr_merge_7.stdout, arm_attr_merge_7, arm_attr_merge_7a.o,
arm_attr_merge_7b.o): New rules.
(MOSTLYCLEANFILES): Add arm_attr_merge_6, arm_attr_merge_6r and
arm_attr_merge_7
* testsuite/Makefile.in: Regenerate.
* testsuite/arm_attr_merge.sh: New file.
* testsuite/arm_attr_merge_[67][ab].s: Same.
Diffstat (limited to 'gold/testsuite')
-rw-r--r-- | gold/testsuite/Makefile.am | 36 | ||||
-rw-r--r-- | gold/testsuite/Makefile.in | 42 | ||||
-rwxr-xr-x | gold/testsuite/arm_attr_merge.sh | 44 | ||||
-rw-r--r-- | gold/testsuite/arm_attr_merge_6a.s | 4 | ||||
-rw-r--r-- | gold/testsuite/arm_attr_merge_6b.s | 3 | ||||
-rw-r--r-- | gold/testsuite/arm_attr_merge_7a.s | 4 | ||||
-rw-r--r-- | gold/testsuite/arm_attr_merge_7b.s | 4 |
7 files changed, 134 insertions, 3 deletions
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am index e77a3ed..435eeab 100644 --- a/gold/testsuite/Makefile.am +++ b/gold/testsuite/Makefile.am @@ -1666,4 +1666,40 @@ arm_no_fix_v4bx: arm_fix_v4bx.o ../ld-new MOSTLYCLEANFILES += arm_fix_v4bx arm_fix_v4bx_interworking arm_no_fix_v4bx +check_SCRIPTS += arm_attr_merge.sh +check_DATA += arm_attr_merge_6.stdout arm_attr_merge_6r.stdout \ + arm_attr_merge_7.stdout + +arm_attr_merge_6.stdout: arm_attr_merge_6 + $(TEST_READELF) -A $< > $@ + +arm_attr_merge_6: arm_attr_merge_6a.o arm_attr_merge_6b.o + ../ld-new -o $@ arm_attr_merge_6a.o arm_attr_merge_6b.o + +arm_attr_merge_6a.o: arm_attr_merge_6a.s + $(TEST_AS) -o $@ $< + +arm_attr_merge_6b.o: arm_attr_merge_6b.s + $(TEST_AS) -o $@ $< + +arm_attr_merge_6r.stdout: arm_attr_merge_6r + $(TEST_READELF) -A $< > $@ + +arm_attr_merge_6r: arm_attr_merge_6b.o arm_attr_merge_6a.o + ../ld-new -o $@ arm_attr_merge_6b.o arm_attr_merge_6a.o + +arm_attr_merge_7.stdout: arm_attr_merge_7 + $(TEST_READELF) -A $< > $@ + +arm_attr_merge_7: arm_attr_merge_7a.o arm_attr_merge_7b.o + ../ld-new -o $@ arm_attr_merge_7a.o arm_attr_merge_7b.o + +arm_attr_merge_7a.o: arm_attr_merge_7a.s + $(TEST_AS) -o $@ $< + +arm_attr_merge_7b.o: arm_attr_merge_7b.s + $(TEST_AS) -o $@ $< + +MOSTLYCLEANFILES += arm_attr_merge_6 arm_attr_merge_6r arm_attr_merge_7 + endif DEFAULT_TARGET_ARM diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in index 7b51717..968d010 100644 --- a/gold/testsuite/Makefile.in +++ b/gold/testsuite/Makefile.in @@ -344,7 +344,7 @@ check_PROGRAMS = object_unittest$(EXEEXT) binary_unittest$(EXEEXT) \ @DEFAULT_TARGET_ARM_TRUE@am__append_38 = arm_abs_global.sh \ @DEFAULT_TARGET_ARM_TRUE@ arm_branch_in_range.sh \ -@DEFAULT_TARGET_ARM_TRUE@ arm_fix_v4bx.sh +@DEFAULT_TARGET_ARM_TRUE@ arm_fix_v4bx.sh arm_attr_merge.sh @DEFAULT_TARGET_ARM_TRUE@am__append_39 = arm_abs_global.stdout \ @DEFAULT_TARGET_ARM_TRUE@ arm_bl_in_range.stdout \ @DEFAULT_TARGET_ARM_TRUE@ arm_bl_out_of_range.stdout \ @@ -358,7 +358,10 @@ check_PROGRAMS = object_unittest$(EXEEXT) binary_unittest$(EXEEXT) \ @DEFAULT_TARGET_ARM_TRUE@ thumb2_blx_out_of_range.stdout \ @DEFAULT_TARGET_ARM_TRUE@ arm_fix_v4bx.stdout \ @DEFAULT_TARGET_ARM_TRUE@ arm_fix_v4bx_interworking.stdout \ -@DEFAULT_TARGET_ARM_TRUE@ arm_no_fix_v4bx.stdout +@DEFAULT_TARGET_ARM_TRUE@ arm_no_fix_v4bx.stdout \ +@DEFAULT_TARGET_ARM_TRUE@ arm_attr_merge_6.stdout \ +@DEFAULT_TARGET_ARM_TRUE@ arm_attr_merge_6r.stdout \ +@DEFAULT_TARGET_ARM_TRUE@ arm_attr_merge_7.stdout @DEFAULT_TARGET_ARM_TRUE@am__append_40 = arm_abs_global \ @DEFAULT_TARGET_ARM_TRUE@ arm_bl_in_range arm_bl_out_of_range \ @DEFAULT_TARGET_ARM_TRUE@ thumb_bl_in_range \ @@ -370,7 +373,8 @@ check_PROGRAMS = object_unittest$(EXEEXT) binary_unittest$(EXEEXT) \ @DEFAULT_TARGET_ARM_TRUE@ thumb2_blx_in_range \ @DEFAULT_TARGET_ARM_TRUE@ thumb2_blx_out_of_range arm_fix_v4bx \ @DEFAULT_TARGET_ARM_TRUE@ arm_fix_v4bx_interworking \ -@DEFAULT_TARGET_ARM_TRUE@ arm_no_fix_v4bx +@DEFAULT_TARGET_ARM_TRUE@ arm_no_fix_v4bx arm_attr_merge_6 \ +@DEFAULT_TARGET_ARM_TRUE@ arm_attr_merge_6r arm_attr_merge_7 subdir = testsuite DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -1244,7 +1248,9 @@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ +install_as_default = @install_as_default@ install_sh = @install_sh@ +installed_linker = @installed_linker@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ @@ -3284,6 +3290,36 @@ uninstall-am: @DEFAULT_TARGET_ARM_TRUE@arm_no_fix_v4bx: arm_fix_v4bx.o ../ld-new @DEFAULT_TARGET_ARM_TRUE@ ../ld-new -o $@ $< +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_6.stdout: arm_attr_merge_6 +@DEFAULT_TARGET_ARM_TRUE@ $(TEST_READELF) -A $< > $@ + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_6: arm_attr_merge_6a.o arm_attr_merge_6b.o +@DEFAULT_TARGET_ARM_TRUE@ ../ld-new -o $@ arm_attr_merge_6a.o arm_attr_merge_6b.o + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_6a.o: arm_attr_merge_6a.s +@DEFAULT_TARGET_ARM_TRUE@ $(TEST_AS) -o $@ $< + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_6b.o: arm_attr_merge_6b.s +@DEFAULT_TARGET_ARM_TRUE@ $(TEST_AS) -o $@ $< + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_6r.stdout: arm_attr_merge_6r +@DEFAULT_TARGET_ARM_TRUE@ $(TEST_READELF) -A $< > $@ + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_6r: arm_attr_merge_6b.o arm_attr_merge_6a.o +@DEFAULT_TARGET_ARM_TRUE@ ../ld-new -o $@ arm_attr_merge_6b.o arm_attr_merge_6a.o + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_7.stdout: arm_attr_merge_7 +@DEFAULT_TARGET_ARM_TRUE@ $(TEST_READELF) -A $< > $@ + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_7: arm_attr_merge_7a.o arm_attr_merge_7b.o +@DEFAULT_TARGET_ARM_TRUE@ ../ld-new -o $@ arm_attr_merge_7a.o arm_attr_merge_7b.o + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_7a.o: arm_attr_merge_7a.s +@DEFAULT_TARGET_ARM_TRUE@ $(TEST_AS) -o $@ $< + +@DEFAULT_TARGET_ARM_TRUE@arm_attr_merge_7b.o: arm_attr_merge_7b.s +@DEFAULT_TARGET_ARM_TRUE@ $(TEST_AS) -o $@ $< + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/gold/testsuite/arm_attr_merge.sh b/gold/testsuite/arm_attr_merge.sh new file mode 100755 index 0000000..3066f4f --- /dev/null +++ b/gold/testsuite/arm_attr_merge.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +# arm_attr_merge.sh -- test ARM attributes merging. + +# Copyright 2010 Free Software Foundation, Inc. +# Written by Doug Kwan <dougkwan@google.com> + +# This file is part of gold. + +# 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 file goes with the assembler source files arm_attr_merge*.s + +check() +{ + file=$1 + pattern=$2 + found=`grep "$pattern" $file` + if test -z "$found"; then + echo "pattern \"$pattern\" not found in file $file." + exit 1 + fi +} + +# This is a bit crude. + +check arm_attr_merge_6.stdout "Tag_MPextension_use: Allowed" +check arm_attr_merge_6r.stdout "Tag_MPextension_use: Allowed" +check arm_attr_merge_7.stdout "Tag_MPextension_use: Allowed" + +exit 0 diff --git a/gold/testsuite/arm_attr_merge_6a.s b/gold/testsuite/arm_attr_merge_6a.s new file mode 100644 index 0000000..df62e53 --- /dev/null +++ b/gold/testsuite/arm_attr_merge_6a.s @@ -0,0 +1,4 @@ + .cpu cortex-a9 + .fpu softvfp + .eabi_attribute 70, 1 + .file "arm_attr_merge_6a.s" diff --git a/gold/testsuite/arm_attr_merge_6b.s b/gold/testsuite/arm_attr_merge_6b.s new file mode 100644 index 0000000..b06e3e0 --- /dev/null +++ b/gold/testsuite/arm_attr_merge_6b.s @@ -0,0 +1,3 @@ + .cpu cortex-a9 + .fpu softvfp + .file "arm_attr_merge_6b.s" diff --git a/gold/testsuite/arm_attr_merge_7a.s b/gold/testsuite/arm_attr_merge_7a.s new file mode 100644 index 0000000..4f55029 --- /dev/null +++ b/gold/testsuite/arm_attr_merge_7a.s @@ -0,0 +1,4 @@ + .cpu cortex-a9 + .fpu softvfp + .eabi_attribute 70, 1 + .file "arm_attr_merge_7a.s" diff --git a/gold/testsuite/arm_attr_merge_7b.s b/gold/testsuite/arm_attr_merge_7b.s new file mode 100644 index 0000000..69135b5 --- /dev/null +++ b/gold/testsuite/arm_attr_merge_7b.s @@ -0,0 +1,4 @@ + .cpu cortex-a9 + .fpu softvfp + .eabi_attribute Tag_MPextension_use, 1 + .file "arm_attr_merge_7b.s" |