[PATCH] D86805: [lld-macho] create __TEXT,__unwind_info from __LD,__compact_unwind
    Jez Ng via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Sep  8 17:15:06 PDT 2020
    
    
  
int3 added inline comments.
================
Comment at: lld/MachO/UnwindInfo.cpp:90-92
+        if (targetIsec->getVA() == 0) {
+          error(Twine("__compact_unwind relocation is unresolved against " +
+                      targetIsec->segname + "," + targetIsec->name));
----------------
Is this check really necessary? What kind of errors are we defending against? I would rather we not loop over the relocations unless necessary (for performance)
================
Comment at: lld/MachO/UnwindInfo.cpp:95-96
+      } else {
+        error(Twine("__compact_unwind relocation is not section based: " +
+                    targetIsec->segname + "," + targetIsec->name));
+      }
----------------
CU relocations can be section-based. Just checked a simple program:
```
~/tmp: llvm-readobj --relocations --expand-relocs bar.o
File: bar.o
Format: Mach-O 64-bit x86-64
Arch: x86_64
AddressSize: 64bit
Relocations [
  Section __compact_unwind {
    Relocation {
      Offset: 0x0
      PCRel: 0
      Length: 3
      Type: X86_64_RELOC_UNSIGNED (0)
      Section: __text (1)
    }
  }
]
~/tmp: cat bar.cpp
int foo() {
  return 123;
}
```
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86805/new/
https://reviews.llvm.org/D86805
    
    
More information about the llvm-commits
mailing list