binutils/
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 14 Sep 2006 23:37:35 +0000 (23:37 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 14 Sep 2006 23:37:35 +0000 (23:37 +0000)
2006-09-14  H.J. Lu  <hongjiu.lu@intel.com>

PR binutils/3182
* objcopy.c (group_signature): Return proper group signature.

binutils/testsuite/

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.

binutils/ChangeLog
binutils/objcopy.c
binutils/testsuite/ChangeLog
binutils/testsuite/binutils-all/objcopy.exp
binutils/testsuite/binutils-all/strip-1.d [new file with mode: 0644]
binutils/testsuite/binutils-all/strip-2.d [new file with mode: 0644]
binutils/testsuite/lib/utils-lib.exp

index e1636e1cb69022ff018ad79c53b532fa8d9f0762..48f6a3902c36272533f7235f58e4b335ff5a6007 100644 (file)
@@ -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
index e916fce83a07cefd8327af8f8dd2773520718419..9bfb68dbba50abc23473fed0eebc7216d70873e7 100644 (file)
@@ -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;
 }
index b3347b78b2761f95368409eca1718b2baef9ec92..47befb9771ba8b03a5fd3981dba052f6fa6d14d5 100644 (file)
@@ -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>
index 679eea59889e38084f6f34e2e856bdb24b75826b..96ae518b9aeb4af976f6a71ab9a545e572dd4c2c 100644 (file)
@@ -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 (file)
index 0000000..2009832
--- /dev/null
@@ -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 (file)
index 0000000..5c54b7e
--- /dev/null
@@ -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
index 3ee76754a5a63ce119145a4aadb0b34923ce0a8a..b91450064586784acbdac9bf066a8501bef1bc71 100644 (file)
@@ -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"