[PATCH] D43474: [llvm-objcopy] Use the full filename in --add-gnu-debuglink

Alexander Richardson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 19 10:31:32 PST 2018


arichardson created this revision.
arichardson added reviewers: jakehehrlich, jhenderson.
Herald added a subscriber: llvm-commits.

The current implementation was writing the file name without the extension
whereas GNU objcopy writes the full filename. With this change GDB will now
load the .debug file instead of silently ignoring it.


Repository:
  rL LLVM

https://reviews.llvm.org/D43474

Files:
  test/tools/llvm-objcopy/add-gnu-debuglink.test
  tools/llvm-objcopy/Object.cpp


Index: tools/llvm-objcopy/Object.cpp
===================================================================
--- tools/llvm-objcopy/Object.cpp
+++ tools/llvm-objcopy/Object.cpp
@@ -372,8 +372,8 @@
 void SectionWithStrTab::finalize() { this->Link = StrTab->Index; }
 
 void GnuDebugLinkSection::init(StringRef File, StringRef Data) {
-  FileName = sys::path::stem(File);
-  // The format for the .gnu_debuglink starts with the stemmed file name and is
+  FileName = sys::path::filename(File);
+  // The format for the .gnu_debuglink starts with the file name and is
   // followed by a null terminator and then the CRC32 of the file. The CRC32
   // should be 4 byte aligned. So we add the FileName size, a 1 for the null
   // byte, and then finally push the size to alignment and add 4.
Index: test/tools/llvm-objcopy/add-gnu-debuglink.test
===================================================================
--- test/tools/llvm-objcopy/add-gnu-debuglink.test
+++ test/tools/llvm-objcopy/add-gnu-debuglink.test
@@ -16,12 +16,13 @@
 # CHECK-NEXT:  ]
 # CHECK-NEXT:  Address: 0x0
 # CHECK-NEXT:  Offset:
-# CHECK-NEXT:  Size: 32
+# CHECK-NEXT:  Size: 36
 # CHECK-NEXT:  Link: 0
 # CHECK-NEXT:  Info: 0
 # CHECK-NEXT:  AddressAlignment: 4
 # CHECK-NEXT:  EntrySize: 0
 # CHECK-NEXT:  SectionData (
 # CHECK-NEXT:      0000: 6164642D 676E752D 64656275 676C696E  |add-gnu-debuglin|
-# CHECK-NEXT:      0010: 6B2E7465 73742E74 6D700000 72C49B0C  |k.test.tmp..r...|
+# CHECK-NEXT:      0010: 6B2E7465 73742E74 6D702E62 6C6F6200  |k.test.tmp.blob.|
+# CHECK-NEXT:      0020: 72C49B0C                             |r...|
 # CHECK-NEXT:  )


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43474.134946.patch
Type: text/x-patch
Size: 1626 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180219/17cecdcd/attachment.bin>


More information about the llvm-commits mailing list