| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
This reverts commit r222310.
Not sure which commit is the cause of the failure on the darwin bot. Will need
to revert my changes and commit one change at a time.
llvm-svn: 222330
|
|
|
|
|
|
|
|
| |
This reverts commit r222311.
Reverting because of failure in the darwin bot.
llvm-svn: 222329
|
|
|
|
|
|
|
|
| |
This reverts commit r222312.
There looks to be an intermittent failure in the darwin buildbot.
llvm-svn: 222326
|
|
|
|
|
|
| |
No functional changes
llvm-svn: 222325
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222324
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222323
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222322
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222321
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222320
|
|
|
|
|
|
|
|
| |
Move functionality from MIPS target to DefaultLayout.
No change in functionality.
llvm-svn: 222313
|
|
|
|
|
|
|
| |
Linker was creating a separate output segment in some cases if input sections
had huge alignments. This patch fixes the issue.
llvm-svn: 222312
|
|
|
|
|
|
| |
No change in functionality.
llvm-svn: 222311
|
|
|
|
|
|
| |
No change in functionality.
llvm-svn: 222310
|
|
|
|
|
|
| |
No change in functionality.
llvm-svn: 222309
|
|
|
|
| |
llvm-svn: 222021
|
|
|
|
| |
llvm-svn: 221974
|
|
|
|
|
|
|
| |
The dynamic section was not aligned properly. The alignment of the section is
determined by the word size of the architecture.
llvm-svn: 221972
|
|
|
|
|
|
|
|
|
| |
With --no-align-segments, there is a bug that the fileoffset may not be
congruent to virtual address modulo page alignment.
This patch fixes the problem.
llvm-svn: 221890
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MIPS ELF symbols might contain some additional MIPS-specific flags
in the st_other field besides visibility ones. These flags indicate
code properties like microMIPS / MIPS16 encoding, position independent
code etc. We need to transfer the flags from input objects to the
output linked file to write them into the symbol table, adjust symbols
addresses etc.
I add new attribute CodeModel to the DefinedAtom class to hold target
specific flag and to get over YAML/Native format conversion barrier.
Other architectures/targets can extend CodeModel enumeration by their
own flags.
MIPS specific part of this patch adds support for STO_MIPS_MICROMIPS
flag. This flag marks microMIPS symbols. Such symbol should:
a) Has STO_MIPS_MICROMIPS in the corresponding .symtab record.
b) Has adjusted (odd) address in the corresponding .symtab
and .dynsym records.
llvm-svn: 221864
|
|
|
|
|
|
|
|
|
| |
The segment alignment for PT_LOAD segments is set to page size by default, but
if any of the sections require an alignment more than the page size, the segment
alignment property is set to the maximum alignment of the sections that are part
of the segment.
llvm-svn: 221862
|
|
|
|
|
|
|
|
|
|
| |
The user can use the max-page-size option and set the maximum page size. Dont
check for maximum allowed values for page size, as its what the kernel is
configured with.
Fix the test as well.
llvm-svn: 221858
|
|
|
|
|
|
| |
Addressed comments from Sean silva.
llvm-svn: 221650
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 221603
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 221602
|
|
|
|
|
|
|
|
|
|
| |
The dynamic table was creating the entry DT_FINI_ARRAY{SZ} even when there was
no .fini_array section. The entries should be creating in the dynamic section
only if there are sections .init_array/.fini_array in the output.
Fixes the tests that checked for errroneous outputs.
llvm-svn: 221588
|
|
|
|
|
|
|
|
| |
The value of _DYNAMIC should be pointing at the start of the .dynamic segment.
This was pointing to the end of the dynamic segment. Similarly the value of
_GLOBAL_OFFSET_TABLE_ was not proper too.
llvm-svn: 221587
|
|
|
|
| |
llvm-svn: 221586
|
|
|
|
|
|
|
| |
The GNU linker allows the user to change the page size by using the option -z
max-page-size.
llvm-svn: 221584
|
|
|
|
| |
llvm-svn: 221572
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lld generates an ELF by adhering to the ELF spec by aligning vma/fileoffset to a
page boundary, but this becomes an issue when dealing with large pages. This
adds support so that lld generated executables adheres to the ELF spec with the
rule vma % p_align = offset % p_align.
This is supported by the flag --no-align-segments.
This could be the default in few targets like X86_64 to save space on disk.
llvm-svn: 221571
|
|
|
|
|
|
|
|
| |
Request `getPairRelocation()` function to get paired relocation type.
That allows us to look up another pairs like R_MICROMIPS_HI16/LO16
in the future.
llvm-svn: 221539
|
|
|
|
|
|
|
|
|
|
| |
ELFLinkingContext had these two functions, which is really not needed since
the Writer uses a llvm::object template composed of Endianness, Alignment,
Is32bit/64bit. We could just use that and not duplicate functionality.
No Change In Functionality.
llvm-svn: 221523
|
|
|
|
|
|
| |
Follow-up to r221439.
llvm-svn: 221442
|
|
|
|
| |
llvm-svn: 221440
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. The path checks ELF header flags to prevent linking of incompatible files.
For example we do not allow to link files with different ABI, -mnan
flags, some combination of target CPU etc.
2. The patch merge ELF header flags from input object files to put their
combination to the generated file. For example, if some input files
have EF_MIPS_NOREORDER flag we need to put this flag to the output
file header.
I use the `parseFile()` (not `canParse()`) method because in case of
recognition of incorrect input flags combination we should show detailed
error message and stop the linking process and should not try to use
another `Reader`.
llvm-svn: 221439
|
|
|
|
| |
llvm-svn: 221433
|
|
|
|
| |
llvm-svn: 221430
|
|
|
|
| |
llvm-svn: 221428
|
|
|
|
| |
llvm-svn: 221427
|
|
|
|
| |
llvm-svn: 221426
|
|
|
|
|
|
|
| |
The st_other field can contains not only visibility flag so we should
retrieve a visibility flag using a bit-mask.
llvm-svn: 221397
|
|
|
|
| |
llvm-svn: 221235
|
|
|
|
|
|
|
|
| |
For some reason, MSVC doesnot like the style.
Checking to make sure this fixes the problem with the build.
llvm-svn: 221234
|
|
|
|
|
|
|
|
|
| |
The ELF writer creates a invalid binary for few cases with large filesize and
memory size for segments. This patch addresses the functionality and updates the
test. This patch also cleans up parts of the ELF writer for future enhancements
to support Linker scripts.
llvm-svn: 221233
|
|
|
|
| |
llvm-svn: 221165
|
|
|
|
| |
llvm-svn: 220668
|
|
|
|
|
|
|
| |
r220665 makes configure or CMake to set HAVE_CXXABI_H on FreeBSD 10.0.
We don't need this ugly ifdef condition anymore.
llvm-svn: 220666
|
|
|
|
| |
llvm-svn: 220326
|
|
|
|
|
|
|
| |
HAVE_CXXABI_H is not defined on FreeBSD but the system actually
has the header. CMake test fails because the header depends on size_t.
llvm-svn: 220315
|
|
|
|
|
|
|
| |
The base class ELFObjectReader/ELFDSOReader implement the canParse functionaity
with this change.
llvm-svn: 220261
|