From c22bfb6b4b37042897f7253f90e84c645b3e8562 Mon Sep 17 00:00:00 2001 From: Nicholas Wilson Date: Mon, 5 Mar 2018 12:59:03 +0000 Subject: [PATCH] [WebAssembly] Reorder reloc sections to come between symtab and name This is required in order to enable relocs to be validated as they are read in. Also update tests with new section ordering. Differential Revision: https://reviews.llvm.org/D43940 llvm-svn: 326694 --- llvm/lib/MC/WasmObjectWriter.cpp | 2 +- llvm/test/Object/Inputs/trivial-object-test.wasm | Bin 320 -> 320 bytes llvm/test/tools/llvm-objdump/Inputs/trivial.obj.wasm | Bin 320 -> 320 bytes llvm/test/tools/llvm-objdump/wasm.txt | 4 ++-- llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm | Bin 291 -> 291 bytes llvm/test/tools/llvm-readobj/sections.test | 10 +++++----- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/llvm/lib/MC/WasmObjectWriter.cpp b/llvm/lib/MC/WasmObjectWriter.cpp index 3c86ca4..87ef0d92 100644 --- a/llvm/lib/MC/WasmObjectWriter.cpp +++ b/llvm/lib/MC/WasmObjectWriter.cpp @@ -1307,9 +1307,9 @@ void WasmObjectWriter::writeObject(MCAssembler &Asm, writeElemSection(TableElems); writeCodeSection(Asm, Layout, Functions); writeDataSection(); + writeLinkingMetaDataSection(SymbolInfos, InitFuncs, Comdats); writeCodeRelocSection(); writeDataRelocSection(); - writeLinkingMetaDataSection(SymbolInfos, InitFuncs, Comdats); // TODO: Translate the .comment section to the output. // TODO: Translate debug sections to the output. diff --git a/llvm/test/Object/Inputs/trivial-object-test.wasm b/llvm/test/Object/Inputs/trivial-object-test.wasm index ae1c9876740f26cadbfe1a4f2043bc50e647c41c..0c91bf231d90b01952a94ace910af619b3fc39bc 100644 GIT binary patch delta 12 UcmX@Wbbx8X$%)URCZ3Q504HAtB>(^b delta 38 ucmX@Wbbx8XNtx*l4Gj!jMX5RY$$HNIF0Ne6EG&!+3|veMg3J?7L<0cy0t#aQ diff --git a/llvm/test/tools/llvm-objdump/Inputs/trivial.obj.wasm b/llvm/test/tools/llvm-objdump/Inputs/trivial.obj.wasm index ae1c9876740f26cadbfe1a4f2043bc50e647c41c..0c91bf231d90b01952a94ace910af619b3fc39bc 100644 GIT binary patch delta 12 UcmX@Wbbx8X$%)URCZ3Q504HAtB>(^b delta 38 ucmX@Wbbx8XNtx*l4Gj!jMX5RY$$HNIF0Ne6EG&!+3|veMg3J?7L<0cy0t#aQ diff --git a/llvm/test/tools/llvm-objdump/wasm.txt b/llvm/test/tools/llvm-objdump/wasm.txt index 5b88b63..ef6265c 100644 --- a/llvm/test/tools/llvm-objdump/wasm.txt +++ b/llvm/test/tools/llvm-objdump/wasm.txt @@ -7,8 +7,8 @@ # CHECK-NEXT: 2 FUNCTION 00000002 0000000000000000 # CHECK-NEXT: 3 CODE 00000019 0000000000000000 TEXT # CHECK-NEXT: 4 DATA 0000001c 0000000000000000 DATA -# CHECK-NEXT: 5 reloc.CODE 00000017 0000000000000000 -# CHECK-NEXT: 6 linking 00000055 0000000000000000 +# CHECK-NEXT: 5 linking 00000055 0000000000000000 +# CHECK-NEXT: 6 reloc.CODE 00000017 0000000000000000 # RUN: llvm-objdump -p %p/Inputs/trivial.obj.wasm | FileCheck %s -check-prefix CHECK-HEADER diff --git a/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm b/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.wasm index 416e57745c3dba8e8ab744190f3badefe8f9ac85..326bbc46b6c4828915c1d473af872f157112c1c4 100644 GIT binary patch delta 12 UcmZ3?w3unafr)qBChnI703;IyyZ`_I delta 38 ucmZ3?w3una0h#Fy4Gj!jMX5RY$$HNIF0Ne6EG&!+3|veMg3J^5y8{5~Q3?Y9 diff --git a/llvm/test/tools/llvm-readobj/sections.test b/llvm/test/tools/llvm-readobj/sections.test index 64f2954..a243b7c 100644 --- a/llvm/test/tools/llvm-readobj/sections.test +++ b/llvm/test/tools/llvm-readobj/sections.test @@ -528,14 +528,14 @@ WASM-NEXT: ] WASM-NEXT: } WASM-NEXT: Section { WASM-NEXT: Type: CUSTOM (0x0) -WASM-NEXT: Size: 23 +WASM-NEXT: Size: 65 WASM-NEXT: Offset: 191 -WASM-NEXT: Name: reloc.CODE +WASM-NEXT: Name: linking WASM-NEXT: } WASM-NEXT: Section { WASM-NEXT: Type: CUSTOM (0x0) -WASM-NEXT: Size: 65 -WASM-NEXT: Offset: 220 -WASM-NEXT: Name: linking +WASM-NEXT: Size: 23 +WASM-NEXT: Offset: 262 +WASM-NEXT: Name: reloc.CODE WASM-NEXT: } WASM-NEXT: ] -- 2.7.4