[PATCH] D61623: [WebAssembly] Add more test coverage for reloctions against section symbols
Sam Clegg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 6 17:12:31 PDT 2019
sbc100 updated this revision to Diff 198377.
sbc100 added a comment.
- remove restriction
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61623/new/
https://reviews.llvm.org/D61623
Files:
lld/test/wasm/section-symbol-relocs.yaml
llvm/lib/ObjectYAML/WasmYAML.cpp
llvm/tools/yaml2obj/yaml2wasm.cpp
Index: llvm/tools/yaml2obj/yaml2wasm.cpp
===================================================================
--- llvm/tools/yaml2obj/yaml2wasm.cpp
+++ llvm/tools/yaml2obj/yaml2wasm.cpp
@@ -532,11 +532,6 @@
break;
case wasm::WASM_SEC_CUSTOM: {
auto CustomSection = dyn_cast<WasmYAML::CustomSection>(&Sec);
- if (!CustomSection->Name.startswith(".debug_")) {
- llvm_unreachable("not yet implemented (only for debug sections)");
- return 1;
- }
-
writeStringRef(("reloc." + CustomSection->Name).str(), OS);
break;
}
Index: llvm/lib/ObjectYAML/WasmYAML.cpp
===================================================================
--- llvm/lib/ObjectYAML/WasmYAML.cpp
+++ llvm/lib/ObjectYAML/WasmYAML.cpp
@@ -484,7 +484,8 @@
WasmYAML::SymbolInfo &Info) {
IO.mapRequired("Index", Info.Index);
IO.mapRequired("Kind", Info.Kind);
- IO.mapRequired("Name", Info.Name);
+ if (Info.Kind != wasm::WASM_SYMBOL_TYPE_SECTION)
+ IO.mapRequired("Name", Info.Name);
IO.mapRequired("Flags", Info.Flags);
if (Info.Kind == wasm::WASM_SYMBOL_TYPE_FUNCTION) {
IO.mapRequired("Function", Info.ElementIndex);
Index: lld/test/wasm/section-symbol-relocs.yaml
===================================================================
--- /dev/null
+++ lld/test/wasm/section-symbol-relocs.yaml
@@ -0,0 +1,51 @@
+# RUN: yaml2obj %s -o %t.o
+# RUN: llc -filetype=obj %S/Inputs/custom.ll -o %t2.o
+# RUN: wasm-ld --no-entry -o - %t2.o %t.o | obj2yaml | FileCheck %s
+# RUN: wasm-ld -r --no-entry -o - %t2.o %t.o | obj2yaml | FileCheck %s -check-prefix=RELOC
+
+--- !WASM
+FileHeader:
+ Version: 0x00000001
+Sections:
+ - Type: CUSTOM
+ Name: green
+ Payload: 'AA0000000000000000'
+ Relocations:
+ - Type: R_WASM_SECTION_OFFSET_I32
+ Index: 0
+ Offset: 0x00000001
+ - Type: R_WASM_SECTION_OFFSET_I32
+ Index: 1
+ Offset: 0x00000005
+ - Type: CUSTOM
+ Name: red
+ Payload: 'BB0000000000000000'
+ - Type: CUSTOM
+ Name: linking
+ Version: 2
+ SymbolTable:
+ - Index: 0
+ Kind: SECTION
+ Section: 0
+ Flags: [ BINDING_LOCAL ]
+ - Index: 1
+ Kind: SECTION
+ Section: 1
+ Flags: [ BINDING_LOCAL ]
+...
+
+# CHECK: Name: green
+# CHECK-NEXT: Payload: 626172717578AA0600000003000000
+# CHECK: Name: red
+# CHECK-NEXT: Payload: 666F6FBB0000000000000000
+
+# RELOC: Relocations:
+# RELOC-NEXT: - Type: R_WASM_SECTION_OFFSET_I32
+# RELOC-NEXT: Index: 0
+# RELOC-NEXT: Offset: 0x00000007
+# RELOC-NEXT: Addend: 6
+# RELOC-NEXT: - Type: R_WASM_SECTION_OFFSET_I32
+# RELOC-NEXT: Index: 1
+# RELOC-NEXT: Offset: 0x0000000B
+# RELOC-NEXT: Addend: 3
+# RELOC-NEXT: Name: green
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61623.198377.patch
Type: text/x-patch
Size: 3201 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190507/ed9a6509/attachment.bin>
More information about the llvm-commits
mailing list