[all-commits] [llvm/llvm-project] 6f5c5c: [lld][WebAssembly] Fix for debug relocations again...

Sam Clegg via All-commits all-commits at lists.llvm.org
Thu Dec 2 08:40:47 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6f5c5cbe5f8209de3f4d91de75d7f3a716e9f131
      https://github.com/llvm/llvm-project/commit/6f5c5cbe5f8209de3f4d91de75d7f3a716e9f131
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2021-12-02 (Thu, 02 Dec 2021)

  Changed paths:
    A lld/test/wasm/debug-undefined-fs.s
    M lld/wasm/InputFiles.cpp

  Log Message:
  -----------
  [lld][WebAssembly] Fix for debug relocations against undefined function symbols

This is very similar to https://reviews.llvm.org/D103557 but applies to
symbols which are undefined at link time rather than compile time.

We already have code that handles symbols which were defined at link
time but dead stripped by `--gc-sections` (See
`test/wasm/debug-removed-fn.ll`). In that case the symbols are not live
(!isLive()).  However, we can also have live symbols (which are
references by the program) but which are undefined at link time and are
imported by the linker.

In the test case here the symbol `undef` is used but is not defined
in the program but is imported by the linker due to the
`--import-undefined` flag.

Fixes: https://github.com/emscripten-core/emscripten/issues/15528

Differential Revision: https://reviews.llvm.org/D114921




More information about the All-commits mailing list