1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/lib
Rainer Orth 4a38ef8718 [ELF] Don't emit SHF_GNU_RETAIN on Solaris
The introduction of `SHF_GNU_RETAIN` has caused massive problems on Solaris.

Initially, as reported in Bug 49437, it caused dozens of testsuite failures
on both sparc and x86.  The objects were marked as `ELFOSABI_NONE`, but
`SHF_GNU_RETAIN` is a GNU extension. In the native Solaris ABI, that flag
(in the range for OS-specific values) is `SHF_SUNW_ABSENT` with a
completely different semantics, which confuses Solaris `ld` very much.

Later, the objects became (correctly) marked `ELFOSABI_GNU`, which Solaris
`ld` doesn't support, causing it to SEGV and break the build.  The linker
is currently being hardened to not accept non-native OS ABIs to avoid this.

The need for linker support is already documented in
`clang/include/clang/Basic/AttrDocs.td`, but not currently checked.

This patch avoids all this by not emitting `SHF_GNU_RETAIN` on Solaris at all.

Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and
`x86_64-pc-linux-gnu`.

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

(cherry picked from commit 7bbbf2956181f375ab193321b37ea71c5fc44054)
2021-08-12 22:51:57 -07:00
..
Analysis [Analysis] improve function signature checking for snprintf 2021-08-02 22:58:39 -07:00
AsmParser [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
BinaryFormat [SystemZ][z/OS] Add GOFF support to file magic identification 2021-07-20 10:50:47 -04:00
Bitcode [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
Bitstream
CodeGen [ELF] Don't emit SHF_GNU_RETAIN on Solaris 2021-08-12 22:51:57 -07:00
DebugInfo [Debug-Info][llvm-dwarfdump] Don't try to dump location 2021-07-27 07:28:59 +00:00
Demangle Demangle: correct swift_async demangling for Microsoft scheme 2021-07-14 11:43:44 -07:00
DWARFLinker [Debug-Info][llvm-dwarfdump] Don't try to dump location 2021-07-27 07:28:59 +00:00
DWP [DWP] Refactoring llvm-dwp in to a library part 2 2021-07-22 14:23:29 -07:00
ExecutionEngine [ORC] Require ExecutorProcessControl when constructing an ExecutionSession. 2021-07-27 16:53:49 +10:00
Extensions
FileCheck
Frontend [mlir][openacc] Initial translation for DataOp to LLVM IR 2021-07-27 22:04:04 -04:00
Fuzzer
FuzzMutate [NewPM][FuzzMutate] Fix renaming 'unswitch' to 'simple-loop-unswitch' 2021-07-09 12:24:12 +02:00
InterfaceStub IFSStub.cpp - consistently use default case to silence 'not all control paths return' MSVC warnings. NFCI. 2021-07-21 11:59:34 +01:00
IR [ConstantFold] Get rid of special cases for sizeof etc. 2021-08-04 21:25:15 -07:00
IRReader
LineEditor
Linker [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
LTO PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
MC [SystemZ][z/OS] Initial code to generate assembly files on z/OS 2021-07-27 11:29:15 -04:00
MCA
Object [Object] make SourceMgr available to MCContext during inline asm symbols 2021-07-25 21:23:03 -07:00
ObjectYAML [yaml2obj][MachO] Rename PayloadString to Content 2021-07-26 09:04:51 -07:00
Option
Passes Add jump-threading optimization for deterministic finite automata 2021-07-27 14:34:04 -04:00
ProfileData [profile] Fix profile merging with binary IDs 2021-08-12 22:46:22 -07:00
Remarks
Support Build libSupport with -Werror=global-constructors (NFC) 2021-07-27 04:27:18 +00:00
TableGen
Target [X86][SchedModel] Add missing ReadAdvance for some arithmetic ops (PR51318 and PR51322). 2021-08-11 21:40:03 -07:00
Testing
TextAPI
ToolDrivers
Transforms [Attributor][NFC] Try to make the windows build bots happy 2021-08-11 09:15:37 -07:00
WindowsManifest
XRay
CMakeLists.txt [DWP] Refactoring llvm-dwp in to a library part 2 2021-07-22 14:23:29 -07:00