[all-commits] [llvm/llvm-project] b062fe: [lld][WebAssembly] Fail if bitcode objects are pul...
Sam Clegg via All-commits
all-commits at lists.llvm.org
Tue Feb 11 17:43:49 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: b062fe181625bd1944ca9ca2a58246ffd7cd3536
https://github.com/llvm/llvm-project/commit/b062fe181625bd1944ca9ca2a58246ffd7cd3536
Author: Sam Clegg <sbc at chromium.org>
Date: 2020-02-11 (Tue, 11 Feb 2020)
Changed paths:
A lld/test/wasm/lto/Inputs/libcall-truncsfhf2.ll
A lld/test/wasm/lto/libcall-truncsfhf2.ll
M lld/wasm/InputFiles.cpp
M lld/wasm/InputFiles.h
M lld/wasm/SymbolTable.cpp
Log Message:
-----------
[lld][WebAssembly] Fail if bitcode objects are pulled in after LTO
This can happen if lto::LTO::getRuntimeLibcallSymbols doesn't return
an complete/accurate list of libcalls. In this case new bitcode
object can be linked in after LTO.
For example the WebAssembly backend currently calls:
setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2");
But `__truncsfhf2` is not part of `getRuntimeLibcallSymbols` so if
this symbol is generated during LTO the link will currently fail.
Without this change the linker crashes because the bitcode symbol
makes it all the way to the output phase.
See: https://bugs.llvm.org/show_bug.cgi?id=44353
Differential Revision: https://reviews.llvm.org/D71632
More information about the All-commits
mailing list