1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/tools
Teresa Johnson 411e4731ce [LTO] Prevent dead stripping and internalization of symbols with sections
Summary:
ELF linkers generate __start_<secname> and __stop_<secname> symbols
when there is a value in a section <secname> where the name is a valid
C identifier.  If dead stripping determines that the values declared
in section <secname> are dead, and we then internalize (and delete)
such a symbol, programs that reference the corresponding start and end
section symbols will get undefined reference linking errors.

To fix this, add the section name to the IRSymtab entry when a symbol is
defined in a specific section. Then use this in the gold-plugin to mark
the symbol as external and visible from outside the summary when the
section name is a valid C identifier.

Reviewers: pcc

Subscribers: mehdi_amini, inglorion, eraman, llvm-commits

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

llvm-svn: 309009
2017-07-25 19:42:32 +00:00
..
bugpoint [NFC] Remove multiple semicolons 2017-06-28 23:15:16 +00:00
bugpoint-passes [CMake] bugpoint-passes depends on intrinsics_gen 2016-11-19 02:20:59 +00:00
dsymutil De-brief doxygen comments 2017-07-21 16:51:17 +00:00
gold [LTO] Prevent dead stripping and internalization of symbols with sections 2017-07-25 19:42:32 +00:00
llc [ORE] Add diagnostics hotness threshold 2017-06-30 23:14:53 +00:00
lli fix typos in comments; NFC 2017-07-11 06:04:59 +00:00
llvm-ar llvm: add llvm-dlltool support to the archiver 2017-07-18 21:26:38 +00:00
llvm-as [CMake] llvm-as depends on intrinsics_gen 2016-11-19 02:15:04 +00:00
llvm-as-fuzzer
llvm-bcanalyzer Bitcode: Include any strings added to the string table in the module hash. 2017-07-06 17:56:01 +00:00
llvm-c-test fix typos in comments and error messges; NFC 2017-07-13 06:48:39 +00:00
llvm-cat Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-config [llvm-config] Don't use PATH_MAX 2017-06-01 20:51:55 +00:00
llvm-cov [llvm-cov] Add a cl::opt to control the number of threads 2017-07-11 01:23:29 +00:00
llvm-cvtres Revert "Revert "Revert "Revert "Switch external cvtres.exe for llvm's own resource library."""" 2017-07-08 03:06:10 +00:00
llvm-cxxdump Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
llvm-cxxfilt c++filt: support COFF import thunks 2017-03-22 21:15:19 +00:00
llvm-diff [IR] Redesign the case iterator in SwitchInst to actually be an iterator 2017-04-12 07:27:28 +00:00
llvm-dis [CMake] llvm-dis depends on intrinsics_gen 2016-11-19 02:31:14 +00:00
llvm-dwarfdump Remove some leftover DWARFContextInMemory. 2017-07-19 23:34:59 +00:00
llvm-dwp [DWARF] NFC: Collect info used by DWARFFormValue into a helper. 2017-06-26 18:43:01 +00:00
llvm-extract [llvm-extract] Add option for recursive extraction 2017-04-06 20:51:40 +00:00
llvm-go [llvm-go] parameterize $GOPATH construction 2016-07-27 03:21:51 +00:00
llvm-jitlistener Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
llvm-link Re-apply r302108, "IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI." 2017-05-04 18:03:25 +00:00
llvm-lto Fix dangling StringRefs found by clang-tidy misc-dangling-handle check. 2017-07-04 15:13:02 +00:00
llvm-lto2 [LTO] Prevent dead stripping and internalization of symbols with sections 2017-07-25 19:42:32 +00:00
llvm-mc sink DebugCompressionType into MC for exposing to clang 2017-06-09 00:40:19 +00:00
llvm-mc-assemble-fuzzer llvm-mc-fuzzer: add support for assembly 2017-02-27 06:22:17 +00:00
llvm-mc-disassemble-fuzzer llvm-mc-fuzzer: add support for assembly 2017-02-27 06:22:17 +00:00
llvm-mcmarkup Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
llvm-modextract Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-mt Implement parsing and writing of a single xml manifest file. 2017-07-20 21:42:04 +00:00
llvm-nm Add error handling to the dyld compact export entries in libObject. 2017-07-20 23:08:41 +00:00
llvm-objdump Add error handling to the dyld compact export entries in libObject. 2017-07-20 23:08:41 +00:00
llvm-opt-report [llvm-opt-report] Fix context-sensitive lines where nothing happened 2017-01-07 20:21:17 +00:00
llvm-pdbutil [codeview] Emit 'D' as the cv source language for D code 2017-07-24 16:16:42 +00:00
llvm-profdata [ProfileData] Add new option to dump topn hottest functions 2017-07-11 20:30:43 +00:00
llvm-rc llvm-rc: Fixup for r308940. This should use LLVMSupport. 2017-07-25 00:51:40 +00:00
llvm-readobj [llvm-readobj] Install llvm-readelf alias 2017-07-19 02:09:37 +00:00
llvm-rtdyld Use delegation instead of inheritance. 2017-07-19 22:27:28 +00:00
llvm-shlib [Solaris] enable --whole-archive for shared-library build, disable --version-script for Solaris-ld 2017-07-19 16:07:51 +00:00
llvm-size llvm-size: remove leading dash in '-radix' option 2016-12-23 23:55:08 +00:00
llvm-split [CMake] llvm-split depends on intrinsics_gen 2016-11-18 23:20:38 +00:00
llvm-stress [IR] Make use of Type::isPtrOrPtrVectorTy/isIntOrIntVectorTy/isFPOrFPVectorTy to shorten code. NFC 2017-07-09 07:04:00 +00:00
llvm-strings llvm-strings: remove default for -Wcovered-switch-default 2017-01-21 02:52:29 +00:00
llvm-symbolizer Add a verbose/human readable mode to llvm-symbolizer to investigate discriminators and other line table/backtrace features 2017-01-31 22:19:38 +00:00
llvm-xray Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
lto Spelling mistakes in comments. NFCI. 2017-03-30 12:59:53 +00:00
msbuild Create msbuild only when using MSVC 2017-03-16 20:24:14 +00:00
obj2yaml Use delegation instead of inheritance. 2017-07-19 22:27:28 +00:00
opt [PM] Another post-commit fix in NewPMDriver 2017-07-11 11:17:44 +00:00
opt-viewer [opt-viewer] Reduce memory consumption by another 20-25% 2017-07-19 22:04:59 +00:00
sancov [sancov] Fix broken links and displaced coloring in coverage-report-server.py 2017-03-20 14:06:04 +00:00
sanstats [sanstats] Print the correct line information. 2017-07-13 00:49:03 +00:00
verify-uselistorder [CMake] verify-uselistorder depends on intrinsics_gen 2016-11-18 23:30:58 +00:00
xcode-toolchain [CMake] Minor fix to regex in r279152 2016-08-18 21:36:36 +00:00
yaml2obj [yaml2obj][ELF] Add support for program headers 2017-07-19 20:38:46 +00:00
CMakeLists.txt
LLVMBuild.txt Add an empty shell of llvm-rc. 2017-07-25 00:25:18 +00:00