[all-commits] [llvm/llvm-project] 29a305: [lld][WebAssembly] Allow references to __tls_base ...

Sam Clegg via All-commits all-commits at lists.llvm.org
Tue Nov 10 18:07:23 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 29a3056bb5346d9b38e4dcb13700576efbff9425
      https://github.com/llvm/llvm-project/commit/29a3056bb5346d9b38e4dcb13700576efbff9425
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2020-11-10 (Tue, 10 Nov 2020)

  Changed paths:
    M lld/test/wasm/no-tls.s
    A lld/test/wasm/tls-no-shared.s
    M lld/wasm/Driver.cpp
    M lld/wasm/SymbolTable.cpp
    M lld/wasm/SymbolTable.h
    M lld/wasm/Writer.cpp

  Log Message:
  -----------
  [lld][WebAssembly] Allow references to __tls_base without shared memory

Previously we limited the use of atomics and TLS to programs
linked with `--shared-memory`.

However, as of https://reviews.llvm.org/D79530 we now allow
programs that use atomic to be linked without `--shared-memory`.
For this to be useful we also want to all TLS usage in such
programs.  In this case, since we know we are single threaded
we simply include the TLS data as a regular active segment
and create an immutable `__tls_base` global that point to the
start of this segment.

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

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




More information about the All-commits mailing list