llvm with tablegen backend for capstone disassembler
Go to file
Petr Hosek 6971a166d9 [libcxxabi] Don't use -fvisibility-global-new-delete-hidden when not defining them
When builing the hermetic static library, the compiler switch
-fvisibility-global-new-delete-hidden is necessary to get the new and
delete operator definitions made correctly. However, when those
definitions are not included in the library, then this switch does harm.
With lld (though not all linkers) setting STV_HIDDEN on SHN_UNDEF
symbols makes it an error to leave them undefined or defined via dynamic
linking that should generate PLTs for -shared linking (lld makes this a
hard error even without -z defs). Though leaving the symbols undefined
would usually work in practice if the linker were to allow it (and the
user didn't pass -z defs), this actually indicates a real problem that
could bite some target configurations more subtly at runtime. For
example, x86-32 ELF -fpic code generation uses hidden visibility on
declarations in the caller's scope as a signal that the call will never
be resolved to a PLT entry and so doesn't have to meet the special ABI
requirements for PLT calls (setting %ebx). Since these functions might
actually be resolved to PLT entries at link time (we don't know what the
user is linking in when the hermetic library doesn't provide all the
symbols itself), it's not safe for the compiler to treat their
declarations at call sites as having hidden visibility.

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

llvm-svn: 360004
2019-05-06 01:25:31 +00:00
clang [analyzer][UninitializedObjectChecker] PR41741: Regard all scalar types as primitive. 2019-05-05 19:42:33 +00:00
clang-tools-extra [clang-tidy] openmp-exception-escape check: point to the structured-block 2019-05-05 21:26:32 +00:00
compiler-rt [Lsan] Disabling explicitally FreeBSD 2019-05-03 19:46:55 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc travis: Add LLVM-8 build 2019-03-27 21:28:31 +00:00
libcxx [libcxx] Don't use -fvisibility-global-new-delete-hidden when not defining them 2019-05-06 01:22:28 +00:00
libcxxabi [libcxxabi] Don't use -fvisibility-global-new-delete-hidden when not defining them 2019-05-06 01:25:31 +00:00
libunwind [gn] Support for building libunwind 2019-05-02 17:29:37 +00:00
lld [lld] Specify output file explicitly 2019-05-03 23:11:32 +00:00
lldb [test] Remove randomness 2019-05-05 18:54:16 +00:00
llgo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
llvm [libcxxabi] Don't use -fvisibility-global-new-delete-hidden when not defining them 2019-05-06 01:25:31 +00:00
openmp [OPENMP][NVPTX]Improve thread limit counter, NFC. 2019-05-03 20:00:38 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly Apply include-what-you-use #include removal suggestions. NFC. 2019-03-28 20:19:49 +00:00
pstl [pstl] Make the default backend be the serial backend and always provide parallel policies 2019-04-24 20:12:36 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
.gitignore Add a reduced copy of the llvm .gitignore 2019-04-09 00:52:49 +00:00
README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.