[all-commits] [llvm/llvm-project] afe957: [WebAssembly] Allow absolute symbols in the linkin...

Sam Clegg via All-commits all-commits at lists.llvm.org
Tue Oct 3 13:16:30 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: afe957ea9552dac35ed21c4160b1ef63439c49cb
      https://github.com/llvm/llvm-project/commit/afe957ea9552dac35ed21c4160b1ef63439c49cb
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2023-10-03 (Tue, 03 Oct 2023)

  Changed paths:
    M lld/test/wasm/emit-relocs.s
    M lld/wasm/SymbolTable.cpp
    M lld/wasm/SyntheticSections.cpp
    M llvm/include/llvm/BinaryFormat/Wasm.h
    M llvm/lib/Object/WasmObjectFile.cpp
    M llvm/lib/ObjectYAML/WasmYAML.cpp

  Log Message:
  -----------
  [WebAssembly] Allow absolute symbols in the linking section (symbol table) (#67493)

Fixes a crash in `-Wl,-emit-relocs` where the linker was not able to
write linker-synthetic absolute symbols to the symbol table.

This change adds a new symbol flag (`WASM_SYMBOL_ABS`), which means that
the symbol's offset is absolute and not relative to a given segment.
Such symbols include `__stack_low` and `__stack_low`.

Note that wasm object files never contains such symbols, only binaries
linked with `-Wl,-emit-relocs`.

Fixes: #67111




More information about the All-commits mailing list