[PATCH] D140203: [lld][ARM][3/3]Big Endian support - Adding tests
    Peter Smith via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Dec 16 07:47:59 PST 2022
    
    
  
peter.smith added a comment.
The title implies that this is just adding tests. Can you update the title to include something like Complete Arm BE32 big-endian support and add tests; or move the SyntheticSections change back to Patch [2/3]
I'll be on holiday for the next 3 weeks. Happy for someone else to review in my absence.
================
Comment at: lld/ELF/SyntheticSections.cpp:3543
       // A Linker generated CANTUNWIND section.
-      memcpy(buf + offset, cantUnwindData, sizeof(cantUnwindData));
+      write64(buf + offset, read64(cantUnwindData));
       uint64_t s = isec->getVA();
----------------
I think this should be two `write32`s as the table is made up of two 32-bit values
| PREL31 to function | CANT_UNWIND |
================
Comment at: lld/ELF/SyntheticSections.cpp:3551
   // Write Sentinel.
-  memcpy(buf + offset, cantUnwindData, sizeof(cantUnwindData));
+  write64(buf + offset, read64(cantUnwindData));
   uint64_t s = sentinel->getVA(sentinel->getSize());
----------------
Same here
================
Comment at: lld/test/ELF/arm-exidx-emit-relocs.s:81
+// CHECK-EB-NEXT: 100e4 00010030 00000001 0001002c 00000001
+// CHECK-EB-NEXT: 100f4 00010028 80978408 00010024 01000000
----------------
The last line is showing the write64 problem with the CANTUNWIND entry. It should be `00000001`
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140203/new/
https://reviews.llvm.org/D140203
    
    
More information about the llvm-commits
mailing list