[PATCH] D30566: [ELF] - Do not try to create .eh_frame_hdr for relocatable output.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 7 02:10:33 PST 2017


grimar updated this revision to Diff 90825.
grimar added a comment.

- Removed warning when --eh-frame-hdr and -r used together.


https://reviews.llvm.org/D30566

Files:
  ELF/Writer.cpp
  test/ELF/relocatable-eh-frame-hdr.s


Index: test/ELF/relocatable-eh-frame-hdr.s
===================================================================
--- test/ELF/relocatable-eh-frame-hdr.s
+++ test/ELF/relocatable-eh-frame-hdr.s
@@ -0,0 +1,11 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
+# RUN: ld.lld --eh-frame-hdr -r %t.o -o %t
+# RUN: llvm-readobj -s %t | FileCheck %s
+
+# CHECK:       Sections [
+# CHECK-NOT:    Name: .eh_frame_hdr
+
+.section .foo,"ax", at progbits
+.cfi_startproc
+.cfi_endproc
Index: ELF/Writer.cpp
===================================================================
--- ELF/Writer.cpp
+++ ELF/Writer.cpp
@@ -436,12 +436,11 @@
   In<ELFT>::Iplt = make<PltSection<ELFT>>(0);
   Add(In<ELFT>::Iplt);
 
-  if (Config->EhFrameHdr) {
-    In<ELFT>::EhFrameHdr = make<EhFrameHeader<ELFT>>();
-    Add(In<ELFT>::EhFrameHdr);
-  }
-
   if (!Config->Relocatable) {
+    if (Config->EhFrameHdr) {
+      In<ELFT>::EhFrameHdr = make<EhFrameHeader<ELFT>>();
+      Add(In<ELFT>::EhFrameHdr);
+    }
     In<ELFT>::EhFrame = make<EhFrameSection<ELFT>>();
     Add(In<ELFT>::EhFrame);
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30566.90825.patch
Type: text/x-patch
Size: 1103 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170307/fdbb046b/attachment.bin>


More information about the llvm-commits mailing list