aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/objcopy.c2
-rw-r--r--binutils/testsuite/ChangeLog11
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp2
-rw-r--r--binutils/testsuite/binutils-all/strip-1.d11
-rw-r--r--binutils/testsuite/binutils-all/strip-2.d18
-rw-r--r--binutils/testsuite/lib/utils-lib.exp12
7 files changed, 56 insertions, 5 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index e1636e1..48f6a39 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/3182
+ * objcopy.c (group_signature): Return proper group signature.
+
2006-09-14 Alan Modra <amodra@bigpond.net.au>
PR 3182
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index e916fce..9bfb68d 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -804,7 +804,7 @@ group_signature (asection *group)
if (symhdr->sh_type == SHT_SYMTAB
&& ghdr->sh_info < symhdr->sh_size / bed->s->sizeof_sym)
- return isympp[ghdr->sh_info];
+ return isympp[ghdr->sh_info - 1];
}
return NULL;
}
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog
index b3347b7..47befb9 100644
--- a/binutils/testsuite/ChangeLog
+++ b/binutils/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2006-09-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/3182
+ * binutils-all/objcopy.exp: Run strip-1 and strip-2 for ELF
+ targets.
+
+ * binutils-all/strip-1.d: New file.
+ * binutils-all/strip-2.d: Likewise.
+
+ * lib/utils-lib.exp (run_dump_test): Support strip.
+
2006-08-15 Thiemo Seufer <ths@mips.com>
Nigel Stephens <nigel@mips.com>
David Ung <davidu@mips.com>
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 679eea5..96ae518 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -731,5 +731,7 @@ run_dump_test "copy-3"
if [is_elf_format] {
run_dump_test "localize-hidden-1"
+ run_dump_test "strip-1"
+ run_dump_test "strip-2"
}
run_dump_test "localize-hidden-2"
diff --git a/binutils/testsuite/binutils-all/strip-1.d b/binutils/testsuite/binutils-all/strip-1.d
new file mode 100644
index 0000000..2009832
--- /dev/null
+++ b/binutils/testsuite/binutils-all/strip-1.d
@@ -0,0 +1,11 @@
+#PROG: strip
+#source: group.s
+#readelf: -Sg --wide
+#name: strip with section group 1
+
+#...
+ \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AX[ \t]+.*
+#...
+ \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WA[ \t]+.*
+#...
+There are no section groups in this file.
diff --git a/binutils/testsuite/binutils-all/strip-2.d b/binutils/testsuite/binutils-all/strip-2.d
new file mode 100644
index 0000000..5c54b7e
--- /dev/null
+++ b/binutils/testsuite/binutils-all/strip-2.d
@@ -0,0 +1,18 @@
+#PROG: strip
+#source: group.s
+#strip: --strip-unneeded
+#readelf: -Sg --wide
+#name: strip with section group 2
+
+#...
+ \[[ 0-9]+\] foo_group[ \t]+GROUP[ \t]+.*
+#...
+ \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.*
+#...
+ \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.*
+#...
+COMDAT group section \[[ 0-9]+\] `foo_group' \[foo_group\] contains 2 sections:
+ \[Index\] Name
+ \[[ 0-9]+\] .text.*
+ \[[ 0-9]+\] .data.*
+#pass
diff --git a/binutils/testsuite/lib/utils-lib.exp b/binutils/testsuite/lib/utils-lib.exp
index 3ee7675..b914500 100644
--- a/binutils/testsuite/lib/utils-lib.exp
+++ b/binutils/testsuite/lib/utils-lib.exp
@@ -279,8 +279,8 @@ proc exe_ext {} {
proc run_dump_test { name {extra_options {}} } {
global subdir srcdir
- global OBJDUMP NM OBJCOPY READELF
- global OBJDUMPFLAGS NMFLAGS OBJCOPYFLAGS READELFFLAGS
+ global OBJDUMP NM OBJCOPY READELF STRIP
+ global OBJDUMPFLAGS NMFLAGS OBJCOPYFLAGS READELFFLAGS STRIPFLAGS
global host_triplet
global env
global copyfile
@@ -362,11 +362,15 @@ proc run_dump_test { name {extra_options {}} } {
return
}
+ set destopt ""
switch -- $opts(PROG) {
ar { set program ar }
objcopy { set program objcopy }
ranlib { set program ranlib }
- strip { set program strip }
+ strip {
+ set program strip
+ set destopt "-o"
+ }
strings { set program strings }
default {
perror "unrecognized program option $opts(PROG) in $file.d"
@@ -470,7 +474,7 @@ proc run_dump_test { name {extra_options {}} } {
eval set progopts \$[string toupper $program]FLAGS
eval set binary \$[string toupper $program]
- set exec_output [binutils_run $binary "$progopts $progopts1 $tempfile ${copyfile}.o"]
+ set exec_output [binutils_run $binary "$progopts $progopts1 $tempfile $destopt ${copyfile}.o"]
if ![string match "" $exec_output] {
send_log "$exec_output\n"
verbose "$exec_output"