mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-02 07:16:29 +00:00

This change was originally landed in: 5000a1b4b9edeb9e994f2a5b36da8d48599bea49 It was reverted in: 061e071d8c9b98526f35cad55a918a4f1615afd4 This change adds support for a new WASM_SEG_FLAG_STRINGS flag in the object format which works in a similar fashion to SHF_STRINGS in the ELF world. Unlike the ELF linker this support is currently limited: - No support for SHF_MERGE (non-string merging) - Always do full tail merging ("lo" can be merged with "hello") - Only support single byte strings (p2align 0) Like the ELF linker merging is only performed at `-O1` and above. This fixes part of https://bugs.llvm.org/show_bug.cgi?id=48828, although crucially it doesn't not currently support debug sections because they are not represented by data segments (they are custom sections) Differential Revision: https://reviews.llvm.org/D97657
40 lines
600 B
CMake
40 lines
600 B
CMake
set(LLVM_TARGET_DEFINITIONS Options.td)
|
|
tablegen(LLVM Options.inc -gen-opt-parser-defs)
|
|
add_public_tablegen_target(WasmOptionsTableGen)
|
|
|
|
add_lld_library(lldWasm
|
|
Driver.cpp
|
|
InputChunks.cpp
|
|
InputFiles.cpp
|
|
LTO.cpp
|
|
MapFile.cpp
|
|
MarkLive.cpp
|
|
OutputSections.cpp
|
|
OutputSegment.cpp
|
|
Relocations.cpp
|
|
SymbolTable.cpp
|
|
Symbols.cpp
|
|
SyntheticSections.cpp
|
|
Writer.cpp
|
|
WriterUtils.cpp
|
|
|
|
LINK_COMPONENTS
|
|
${LLVM_TARGETS_TO_BUILD}
|
|
BinaryFormat
|
|
Core
|
|
Demangle
|
|
LTO
|
|
MC
|
|
Object
|
|
Option
|
|
Passes
|
|
Support
|
|
|
|
LINK_LIBS
|
|
lldCommon
|
|
|
|
DEPENDS
|
|
WasmOptionsTableGen
|
|
intrinsics_gen
|
|
)
|