bfd/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 29 May 2008 07:07:21 +0000 (07:07 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 29 May 2008 07:07:21 +0000 (07:07 +0000)
* elf.c (assign_file_positions_for_load_sections): Adjust pre-section
gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses.
binutils/testsuite/
* binutils-all/objcopy.exp: Call KEEP_DEBUG_SYMBOLS_AND_TEST_COPY.
(keep_debug_symbols_and_test_copy): New function.
(test5, test6): New variables.

bfd/ChangeLog
bfd/elf.c
binutils/testsuite/ChangeLog
binutils/testsuite/binutils-all/objcopy.exp

index 4fb2a0be0b968978db5b6e17670208441eabf3bf..e980d900b19ff9dfef11b09ae1f7aaa8ea90f3d4 100644 (file)
@@ -1,3 +1,8 @@
+2008-05-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * elf.c (assign_file_positions_for_load_sections): Adjust pre-section
+       gaps based on VMA and P_VADDR instead of LMA and P_PADDR addresses.
+
 2008-05-28  Alan Modra  <amodra@bigpond.net.au>
 
        * elf32-spu.c (spu_elf_object_p): New function.
index 005f8f629f19a371de31d260f82f8267a97e7b68..37a150191cf69df7b7f379b552cfd8690ea51a9f 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -4371,12 +4371,12 @@ assign_file_positions_for_load_sections (bfd *abfd,
                      && ((this_hdr->sh_flags & SHF_TLS) == 0
                          || p->p_type == PT_TLS))))
            {
-             bfd_signed_vma adjust = sec->lma - (p->p_paddr + p->p_memsz);
+             bfd_signed_vma adjust = sec->vma - (p->p_vaddr + p->p_memsz);
 
              if (adjust < 0)
                {
                  (*_bfd_error_handler)
-                   (_("%B: section %A lma 0x%lx overlaps previous sections"),
+                   (_("%B: section %A vma 0x%lx overlaps previous sections"),
                     abfd, sec, (unsigned long) sec->lma);
                  adjust = 0;
                }
index e7cc69ace14b0aa2a6994e72cbbe833494424554..79aa219d49d1782b059581d8c89a42b4ba180ed1 100644 (file)
@@ -1,3 +1,9 @@
+2008-05-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * binutils-all/objcopy.exp: Call KEEP_DEBUG_SYMBOLS_AND_TEST_COPY.
+       (keep_debug_symbols_and_test_copy): New function.
+       (test5, test6): New variables.
+
 2008-03-27  Cary Coutant <ccoutant@google.com>
 
        * binutils-all/ar.exp: Add thin archive tests.
index 8c232d042da4eed89be1db685f23ce1613e588e2..fe87f6280e0cce3db168b30fb3feed1af9563187 100644 (file)
@@ -681,10 +681,40 @@ proc strip_executable_with_saving_a_symbol { prog flags test } {
     pass $test
 }
 
+# Test keeping only debug symbols of an executable
+
+proc keep_debug_symbols_and_test_copy { prog1 flags1 test1 prog2 flags2 test2 } {
+    global NM
+    global NMFLAGS
+
+    remote_download build tmpdir/copyprog tmpdir/striprog
+    if [is_remote host] {
+       set copyfile [remote_download host tmpdir/striprog]
+    } else {
+       set copyfile tmpdir/striprog
+    }
+
+    set exec_output [binutils_run $prog1 "$flags1 ${copyfile}"]
+    if ![string match "" $exec_output] {
+       fail $test1
+       return
+    }
+    pass $test1
+
+    set exec_output [binutils_run $prog2 "$flags2 ${copyfile}"]
+    if ![string match "" $exec_output] {
+       fail $test2
+       return
+    }
+    pass $test2
+}
+
 set test1 "simple objcopy of executable"
 set test2 "run objcopy of executable"
 set test3 "run stripped executable"
 set test4 "run stripped executable with saving a symbol"
+set test5 "keep only debug data"
+set test6 "simple objcopy of debug data"
 
 switch [copy_setup] {
     "1" {
@@ -695,17 +725,23 @@ switch [copy_setup] {
        untested $test2
        untested $test3
        untested $test4
+       untested $test5
+       untested $test6
     }
     "3" {
        copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" ""
        unsupported $test2
        unsupported $test3
        unsupported $test4
+       unsupported $test5
+       unsupported $test6
     }
     "0" {
        copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" "$test2"
        strip_executable "$STRIP" "$STRIPFLAGS" "$test3"
        strip_executable_with_saving_a_symbol "$STRIP" "-K main -K _main $STRIPFLAGS" "$test4"
+       keep_debug_symbols_and_test_copy "$STRIP" "--only-keep-debug $STRIPFLAGS" "$test5" \
+                                        "$OBJCOPY" "$OBJCOPYFLAGS" "$test6"
     }
 }
 
This page took 0.03201 seconds and 4 git commands to generate.