llvm-project/lld
Peter Smith 532bc984f5 [ELF] Accept first SHT_ARM_ATTRIBUTES section
The eglibc library, as used by Ubuntu 14.04 requires the presence of an
SHT_ARM_ATTRIBUTES section in for the purposes of checking hard/soft float
compatibility when dlopen() is used. Unfortunately when the section is not
present dlopen() fails with a generic could not find file message.
    
This change makes lld keep the first .ARM.attributes section that it
encounters and propagates it to the output. This is not a complete
SHT_ARM_ATTRIBUTES implementation, that would involve reading the contents
of the section and joining each individual attribute. It should suffice
for a homogenous build all libraries and executables on the same system
with a compatible set of command line options.

Differential revision: https://reviews.llvm.org/D27718

llvm-svn: 289642
2016-12-14 10:36:12 +00:00
..
COFF COFF: Fix memory leaks reported by lsan. 2016-12-12 18:42:09 +00:00
ELF [ELF] Accept first SHT_ARM_ATTRIBUTES section 2016-12-14 10:36:12 +00:00
cmake/modules
docs Partially revert r287009: Remove trailing whitespace. 2016-11-15 19:09:13 +00:00
include/lld Move Memory.{h,cpp} to lld/Support so that we can use them from COFF. 2016-12-08 18:31:13 +00:00
lib Move Memory.{h,cpp} to lld/Support so that we can use them from COFF. 2016-12-08 18:31:13 +00:00
test [ELF] Accept first SHT_ARM_ATTRIBUTES section 2016-12-14 10:36:12 +00:00
tools/lld Call _exit. 2016-10-26 18:59:00 +00:00
unittests [Cmake] Use Cmake's default RPATH for unittest. 2016-09-12 20:44:53 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.gitignore
CMakeLists.txt build: add support for standalone lld build 2016-12-12 05:47:40 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

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