| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
I think it is clear by now that the new linker is viable.
llvm-svn: 262158
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to enable isa<> support for any files which need it.
It will be used in an upcoming patch to differentiate MachOFile from other implicitly generated files.
Reviewed by Lang Hames.
Differential Revision: http://reviews.llvm.org/D16103
llvm-svn: 257830
|
|
|
|
| |
llvm-svn: 257801
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a UI such as XCode, LLVM source files are in 'libraries' while clang
files are in 'clang libraries'.
This change moves the lld source to 'lld libraries' to make code browsing easier.
It should be NFC as the build itself is still the same, just the structure in a
UI differs.
llvm-svn: 257001
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Put sections to segments according to linker scripts if available.
Rework the code of TargetLayout::assignSectionsToSegments so it operates
on the given list of segments, which can be either read from linker scripts
or constructed as before.
Handle NONE segments defined in linker scripts by putting corresponding sections
to PT_NULL segment.
Consider flags set for segments through linker scripts.
Differential Revision: http://reviews.llvm.org/D10918
llvm-svn: 243002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is GNU ELF linker extension used particularly by LibC code.
If input object files contain section named XXX, and the XXX is a valid C
identifier, and there are undefined or weak symbols __start_XXX/__stop_XXX,
linker should define __start_XXX/__stop_XXX symbols point to the begin/end
of the XXX section correspondingly.
For example, without support of this extension statically linked executables
for X86_64 and Mips (maybe other) targets do not flush IO buffers at the end
of executing.
llvm-svn: 241341
|
|
|
|
|
|
|
|
| |
None of the implementations replace the SimpleFile with some other file,
they just modify the SimpleFile in-place, so a direct reference to the
file is sufficient.
llvm-svn: 240167
|
|
|
|
| |
llvm-svn: 240147
|
|
|
|
|
|
|
|
| |
It caused warning in clang assuming the default
branch would never be reached with the given
switch key type.
llvm-svn: 238194
|
|
|
|
| |
llvm-svn: 238191
|
|
|
|
| |
llvm-svn: 238017
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These two serve different purpose:
PLTGOT entries are (usually) lazily resolved and serve as trampolines
to correctly call dynamically linked functions. They often have
R_*_JUMP_SLOT dynamic relocation type used.
Simple GOT entries hold other things, one of them may be
R_*_GLOB_DAT to correctly reference global and static data. This
is also used to hold dynamically linked function's address.
To properly handle cases when shared object's function is called
and at the same time its address is taken, we need to be able to have
both GOT and PLTGOT entries bearing different dynamic relocation types
for the same symbol.
llvm-svn: 238015
|
|
|
|
|
|
|
|
| |
This is used when referencing global or static data in shared
objects. This is also used when function's address is taken and
function call is made indirectly.
llvm-svn: 238014
|
|
|
|
| |
llvm-svn: 237898
|
|
|
|
| |
llvm-svn: 237896
|
|
|
|
| |
llvm-svn: 237892
|
|
|
|
| |
llvm-svn: 237891
|
|
|
|
| |
llvm-svn: 237883
|
|
|
|
| |
llvm-svn: 237881
|
|
|
|
|
|
| |
These include _GLOBAL_OFFSET_TABLE_ and _DYNAMIC.
llvm-svn: 237791
|
|
|
|
| |
llvm-svn: 236880
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch provides generation of .ARM.exidx & .ARM.extab sections which are
used for unwinding. The patch adds new content type typeARMExidx for atoms from
.ARM.exidx section and integration of atoms with such type to the ELF
ReaderWriter. exidx.test has been added with checking of contents of .ARM.exidx
section and .ARM.extab section.
Differential Revision: http://reviews.llvm.org/D9324
llvm-svn: 236873
|
|
|
|
| |
llvm-svn: 236842
|
|
|
|
| |
llvm-svn: 236841
|
|
|
|
| |
llvm-svn: 236839
|
|
|
|
| |
llvm-svn: 236729
|
|
|
|
| |
llvm-svn: 236727
|
|
|
|
| |
llvm-svn: 236726
|
|
|
|
| |
llvm-svn: 236724
|
|
|
|
| |
llvm-svn: 236723
|
|
|
|
| |
llvm-svn: 235890
|
|
|
|
| |
llvm-svn: 235706
|
|
|
|
|
|
| |
This adds support of copying objects from shared libraries.
llvm-svn: 235705
|
|
|
|
|
|
|
|
|
| |
According to the code model (ARM, Thumb, Thumb2) this patch updates the b/bl/blx 0 instructions with NOP.
test/elf/ARM/weak-branch.test has been added with tests for all available NOP (A1, T1, T2 encodings).
Differential Revision: http://reviews.llvm.org/D8807
llvm-svn: 235498
|
|
|
|
| |
llvm-svn: 235486
|
|
|
|
| |
llvm-svn: 235485
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 235484
|
|
|
|
| |
llvm-svn: 235182
|
|
|
|
| |
llvm-svn: 234991
|
|
|
|
| |
llvm-svn: 234989
|
|
|
|
| |
llvm-svn: 234938
|
|
|
|
|
|
|
|
| |
We don't need to repeat the template argument. They are not
ambiguous. MIPS is parameterized for ELFT, so we can't do this
for MIPS, though.
llvm-svn: 234913
|
|
|
|
| |
llvm-svn: 234876
|
|
|
|
| |
llvm-svn: 234874
|
|
|
|
| |
llvm-svn: 234862
|
|
|
|
| |
llvm-svn: 234860
|
|
|
|
|
|
|
| |
These this-> are there because their classes were templated.
They are no longer templated.
llvm-svn: 234859
|
|
|
|
| |
llvm-svn: 234858
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, ELFReader takes three template arguments: EFLT,
LinkingContextT and FileT. FileT is itself templated.
So it was a bit complicated. Maybe too much.
Most architectures don't actually need to be parameterized for ELFT.
For example, x86 is always ELF32LE and x86-64 is ELF64LE.
However, because ELFReader requires a ELFT argument, we needed
to parameterize a class even if not needed.
This patch removes the parameter from the class. So now we can
de-templatize such classes (I didn't do that in this patch, though).
This patch also removes ContextT parameter since it didn't have to be
passed as a template argument.
llvm-svn: 234853
|
|
|
|
|
|
|
| |
These classes are templated but actually instantiated for only
one ELF type.
llvm-svn: 234830
|