llvm/llvm
Ryan Prichard 729899f7b6 [libunwind] unw_* alias fixes for ELF and Mach-O
Rename the CMake option, LIBUNWIND_HERMETIC_STATIC_LIBRARY, to
LIBUNWIND_HIDE_SYMBOLS. Rename the C macro define,
_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS, to _LIBUNWIND_HIDE_SYMBOLS,
because now the macro adds a .hidden directive rather than merely
suppress visibility annotations.

For ELF, when LIBUNWIND_HIDE_SYMBOLS is enabled, mark unw_getcontext as
hidden. This symbol is the only one defined using src/assembly.h's
WEAK_ALIAS macro. Other unw_* weak aliases are defined in C++ and are
already hidden.

Mach-O doesn't support weak aliases, so remove .weak_reference and
weak_import. When LIBUNWIND_HIDE_SYMBOLS is enabled, output
.private_extern for the unw_* aliases.

In assembly.h, add missing SYMBOL_NAME macro invocations, which are
used to prefix symbol names with '_' on some targets.

Fixes PR46709.

Reviewed By: #libunwind, phosek, compnerd, steven_wu

Differential Revision: https://reviews.llvm.org/D93003
2021-02-22 16:54:05 -08:00
..
benchmarks
bindings
cmake [CMake] Don't optimize tests so much under ThinLTO 2021-02-22 15:13:49 -08:00
docs [LangRef] fix typo in assume bundle description; NFC 2021-02-22 09:30:49 -05:00
examples
include [JITLink] Add a getFixupAddress convenience method to Block. 2021-02-23 11:08:54 +11:00
lib [X86][AMX] Lower tile copy instruction. 2021-02-23 07:49:42 +08:00
projects
resources
runtimes
test [X86][AMX] Lower tile copy instruction. 2021-02-23 07:49:42 +08:00
tools [NFC][llvm-dwarfdump] Don't calculate unnecessary stats 2021-02-22 00:31:29 -08:00
unittests [JITLink] Add a getFixupAddress convenience method to Block. 2021-02-23 11:08:54 +11:00
utils [libunwind] unw_* alias fixes for ELF and Mach-O 2021-02-22 16:54:05 -08:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
README.txt
RELEASE_TESTERS.TXT

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.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.