mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-01 07:11:45 +00:00
[WebAssembly] Remove "name" section of object wasm object files
LLD is unaffected, no changes needed there. LLD continues to write out a name section, using the symbol names. Fixes: https://github.com/WebAssembly/tool-conventions/issues/37 Patch by Nicholas Wilson! Differential Revision: https://reviews.llvm.org/D42425 llvm-svn: 323234
This commit is contained in:
parent
cf5d6d6d71
commit
c8e6514e3e
@ -291,8 +291,6 @@ private:
|
||||
void writeCodeSection(const MCAssembler &Asm, const MCAsmLayout &Layout,
|
||||
ArrayRef<WasmFunction> Functions);
|
||||
void writeDataSection(ArrayRef<WasmDataSegment> Segments);
|
||||
void writeNameSection(ArrayRef<WasmFunction> Functions,
|
||||
ArrayRef<WasmImport> Imports);
|
||||
void writeCodeRelocSection();
|
||||
void writeDataRelocSection();
|
||||
void writeLinkingMetaDataSection(
|
||||
@ -851,36 +849,6 @@ void WasmObjectWriter::writeDataSection(ArrayRef<WasmDataSegment> Segments) {
|
||||
endSection(Section);
|
||||
}
|
||||
|
||||
void WasmObjectWriter::writeNameSection(ArrayRef<WasmFunction> Functions,
|
||||
ArrayRef<WasmImport> Imports) {
|
||||
uint32_t TotalFunctions = NumFunctionImports + Functions.size();
|
||||
if (TotalFunctions == 0)
|
||||
return;
|
||||
|
||||
SectionBookkeeping Section;
|
||||
startSection(Section, wasm::WASM_SEC_CUSTOM, "name");
|
||||
SectionBookkeeping SubSection;
|
||||
startSection(SubSection, wasm::WASM_NAMES_FUNCTION);
|
||||
|
||||
encodeULEB128(TotalFunctions, getStream());
|
||||
uint32_t Index = 0;
|
||||
for (const WasmImport &Import : Imports) {
|
||||
if (Import.Kind == wasm::WASM_EXTERNAL_FUNCTION) {
|
||||
encodeULEB128(Index, getStream());
|
||||
writeString(Import.FieldName);
|
||||
++Index;
|
||||
}
|
||||
}
|
||||
for (const WasmFunction &Func : Functions) {
|
||||
encodeULEB128(Index, getStream());
|
||||
writeString(Func.Sym->getName());
|
||||
++Index;
|
||||
}
|
||||
|
||||
endSection(SubSection);
|
||||
endSection(Section);
|
||||
}
|
||||
|
||||
void WasmObjectWriter::writeCodeRelocSection() {
|
||||
// See: https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md
|
||||
// for descriptions of the reloc sections.
|
||||
@ -1405,7 +1373,6 @@ void WasmObjectWriter::writeObject(MCAssembler &Asm,
|
||||
writeElemSection(TableElems);
|
||||
writeCodeSection(Asm, Layout, Functions);
|
||||
writeDataSection(DataSegments);
|
||||
writeNameSection(Functions, Imports);
|
||||
writeCodeRelocSection();
|
||||
writeDataRelocSection();
|
||||
writeLinkingMetaDataSection(DataSegments, DataSize, SymbolFlags,
|
||||
|
@ -94,17 +94,6 @@ define linkonce_odr i32 @sharedFn() #1 comdat($sharedComdat) {
|
||||
; CHECK-NEXT: Value: 0
|
||||
; CHECK-NEXT: Content: '616263'
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: name
|
||||
; CHECK-NEXT: FunctionNames:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: funcImport
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: callImport
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: basicInlineFn
|
||||
; CHECK-NEXT: - Index: 3
|
||||
; CHECK-NEXT: Name: sharedFn
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: DataSize: 3
|
||||
; CHECK-NEXT: SymbolInfo:
|
||||
|
@ -137,27 +137,6 @@ declare void @func3()
|
||||
; CHECK-NEXT: Value: 0
|
||||
; CHECK-NEXT: Content: '01040000'
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: name
|
||||
; CHECK-NEXT: FunctionNames:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: func3
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: __cxa_atexit
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: func2
|
||||
; CHECK-NEXT: - Index: 3
|
||||
; CHECK-NEXT: Name: func1
|
||||
; CHECK-NEXT: - Index: 4
|
||||
; CHECK-NEXT: Name: func0
|
||||
; CHECK-NEXT: - Index: 5
|
||||
; CHECK-NEXT: Name: .Lcall_dtors.42
|
||||
; CHECK-NEXT: - Index: 6
|
||||
; CHECK-NEXT: Name: .Lregister_call_dtors.42
|
||||
; CHECK-NEXT: - Index: 7
|
||||
; CHECK-NEXT: Name: .Lcall_dtors
|
||||
; CHECK-NEXT: - Index: 8
|
||||
; CHECK-NEXT: Name: .Lregister_call_dtors
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: DataSize: 4
|
||||
; CHECK-NEXT: SymbolInfo:
|
||||
|
@ -41,10 +41,6 @@ entry:
|
||||
; CHECK: }
|
||||
; CHECK: Section {
|
||||
; CHECK: Type: CUSTOM (0x0)
|
||||
; CHECK: Name: name
|
||||
; CHECK: }
|
||||
; CHECK: Section {
|
||||
; CHECK: Type: CUSTOM (0x0)
|
||||
; CHECK: Name: reloc.CODE
|
||||
; CHECK: }
|
||||
; CHECK:]
|
||||
|
@ -12,8 +12,6 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: - Type: CUSTOM
|
||||
|
||||
; CHECK: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: DataSize: 0
|
||||
|
@ -191,21 +191,6 @@ entry:
|
||||
; CHECK-NEXT: Content: '01000000'
|
||||
|
||||
; CHECK: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: name
|
||||
; CHECK-NEXT: FunctionNames:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: foo_alias
|
||||
; CHECK-NEXT: - Index: 1
|
||||
; CHECK-NEXT: Name: foo
|
||||
; CHECK-NEXT: - Index: 2
|
||||
; CHECK-NEXT: Name: call_direct
|
||||
; CHECK-NEXT: - Index: 3
|
||||
; CHECK-NEXT: Name: call_alias
|
||||
; CHECK-NEXT: - Index: 4
|
||||
; CHECK-NEXT: Name: call_direct_ptr
|
||||
; CHECK-NEXT: - Index: 5
|
||||
; CHECK-NEXT: Name: call_alias_ptr
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: DataSize: 20
|
||||
; CHECK-NEXT: SymbolInfo:
|
||||
|
@ -24,11 +24,6 @@ entry:
|
||||
|
||||
|
||||
; CHECK: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: name
|
||||
; CHECK-NEXT: FunctionNames:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: weak_function
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: DataSize: 0
|
||||
; CHECK-NEXT: SymbolInfo:
|
||||
|
Loading…
x
Reference in New Issue
Block a user