Commit Graph

1872 Commits

Author SHA1 Message Date
pcc
970d6d2096 ELF: Have __rela_iplt_{start,end} surround .rela.iplt with --pack-dyn-relocs=android.
In #86751 we moved the IRELATIVE relocations to .rela.plt when
--pack-dyn-relocs=android was enabled but we neglected to also move
the __rela_iplt_{start,end} symbols. As a result, static binaries
linked with this flag were unable to find their IRELATIVE relocations.
Fix it by having the symbols surround the correct section.

Reviewers: MaskRay, smithp35

Reviewed By: MaskRay

Pull Request: https://github.com/llvm/llvm-project/pull/118585
2024-12-04 17:35:05 -08:00
Fangrui Song
ee19eb3037 [ELF] Change some upper-case utohexstr to lower-case to improve consistency
The convention is to use lower-case addresses.
2024-11-29 18:37:47 -08:00
Fangrui Song
1cd627562b [ELF] Remove unneeded Twine in ELFSyncStream 2024-11-24 12:13:02 -08:00
Fangrui Song
37e39667cc [ELF] Make ThunkCreator take ownership of thunks
This removes many SpecificAlloc instantiations and makes my lld (x86-64
Release+Assertions) smaller by ~36k.
2024-11-19 23:16:35 -08:00
Fangrui Song
a52032448e [ELF] Avoid make<PhdrEntry>
Store them in Partition::phdrs instead.
2024-11-19 22:38:14 -08:00
Fangrui Song
4092c0deef [ELF,ARM] Move global sectionMap into the ARM class
Otherwise, LLD_IN_TEST=2 testing arm-plt-reloc.s crashes.

Follow-up to https://reviews.llvm.org/D150870
2024-11-18 09:08:30 -08:00
Fangrui Song
5b1b6a62b8 [ELF] Make elfHeader/programHeaders unique_ptr
This removes some SpecificAlloc instantiations, makes lld smaller, and
drops the small memory waste due to the separate BumpPtrAllocator.
2024-11-17 00:25:42 -08:00
Fangrui Song
2991a4e209 [ELF] Replace functions bAlloc/saver/uniqueSaver with member access 2024-11-16 22:34:13 -08:00
Fangrui Song
8f238f662c [ELF] Make Ctx inherit from CommonLinkerContext
link calls `new CommonLinkerContext`. Now that `Ctx ctx` is a local
variable, we can make it inherit from CommonLinkerContext.
2024-11-16 22:28:55 -08:00
Fangrui Song
dc6229bd66 [lld] Use context-aware outs() and errs() 2024-11-16 18:25:51 -08:00
Fangrui Song
a626eb2a2f [ELF] Pass ctx to bAlloc/saver/uniqueSaver 2024-11-16 15:20:21 -08:00
Fangrui Song
24c7d97cff [ELF] Replace context-less errorHandler() and error() with ctx.errHandler 2024-11-16 14:14:54 -08:00
Fangrui Song
3fb83f65c4 [ELF] Replace toString(RelType) with operator<< while using ELFSyncStream 2024-11-16 11:45:46 -08:00
Fangrui Song
d82422f69c [ELF] Remove errorOrWarn 2024-11-15 09:37:38 -08:00
Fangrui Song
d69cc05bcf [ELF] Migrate away from global ctx 2024-11-14 22:30:29 -08:00
Fangrui Song
ed6c106e6a [ELF] Replace errorCount with errCount(ctx)
to reduce reliance on the global context.
2024-11-07 09:06:01 -08:00
Fangrui Song
9b058bb42d [ELF] Replace errorOrWarn(...) with Err 2024-11-06 22:33:51 -08:00
Fangrui Song
f8bae3af74 [ELF] Replace warn(...) with Warn 2024-11-06 22:19:31 -08:00
Fangrui Song
09c2c5e1e9 [ELF] Replace error(...) with ErrAlways or Err
Most are migrated to ErrAlways mechanically.
In the future we should change most to Err.
2024-11-06 22:04:52 -08:00
Fangrui Song
63c6fe4a0b [ELF] Replace fatal(...) with Fatal or Err 2024-11-06 21:17:26 -08:00
Fangrui Song
5d928ffce2 [ELF] Remove error-prone RelocationBaseSection::classof 2024-10-19 21:02:03 -07:00
Fangrui Song
861bd36bce [ELF] Pass Ctx & to Symbol::getVA 2024-10-19 20:32:58 -07:00
Fangrui Song
fe8af49a1b [ELF] Pass Ctx & to Defined & CommonSymbol 2024-10-20 01:38:16 +00:00
Fangrui Song
682925ef43 [ELF] Pass Ctx & to Partition 2024-10-15 22:58:07 -07:00
Fangrui Song
a3bad9adcb [ELF] Pass Ctx & 2024-10-12 09:56:05 -07:00
Fangrui Song
dbd197118d [ELF] Pass Ctx & to Symbol 2024-10-11 23:34:43 -07:00
Fangrui Song
dd326b1225 [ELF] Pass Ctx & 2024-10-11 21:10:05 -07:00
Fangrui Song
1c28f31133 [ELF] Pass Ctx & 2024-10-11 18:35:02 -07:00
Fangrui Song
81bd712f92 [ELF] Revert Ctx & parameters from SyntheticSection
Since Ctx &ctx is a member variable,
1f391a75af
7a5b9ef54e
e2f0ec3a3a can be reverted.
2024-10-10 23:43:21 -07:00
Fangrui Song
cfd3289a1f [ELF] Pass Ctx & to some free functions 2024-10-06 19:36:21 -07:00
Fangrui Song
5f6346190c [ELF] Pass Ctx & to SyntheticSections 2024-10-06 17:23:16 -07:00
Fangrui Song
f1dccda1b5 [ELF] Pass Ctx & to Symbols 2024-10-06 17:05:43 -07:00
Fangrui Song
b3e0bd3d28 [ELF] Pass Ctx & to Arch/ 2024-10-06 00:31:51 -07:00
Fangrui Song
6d03a69034 [ELF] Pass Ctx & to Arch/ 2024-10-06 00:14:12 -07:00
Fangrui Song
53a1fb0cd7 [ELF] Pass Ctx & 2024-10-05 09:37:27 -07:00
Fangrui Song
e2f0ec3a3a [ELF] Pass Ctx & to SyntheticSection::getSize 2024-10-03 22:53:07 -07:00
Fangrui Song
7a5b9ef54e [ELF] Pass Ctx & to SyntheticSection::writeTo 2024-10-03 20:56:09 -07:00
Fangrui Song
1f391a75af [ELF] Pass Ctx & to SyntheticSection::finalizeContents 2024-10-03 20:45:40 -07:00
Fangrui Song
3590068950 [ELF] Pass Ctx & to OutputSections 2024-10-03 20:06:58 -07:00
Fangrui Song
c490d349c5 [ELF] Pass Ctx & to Relocations 2024-09-29 16:15:32 -07:00
Fangrui Song
cc6c059dc1 [ELF] Pass Ctx & to Writer 2024-09-29 15:54:28 -07:00
Fangrui Song
17473182f5 [ELF] Pass Ctx & to MapFile 2024-09-29 15:39:52 -07:00
Fangrui Song
29783f70db [ELF] Pass Ctx & to Relocations 2024-09-28 19:17:18 -07:00
Fangrui Song
a94060ca0c [ELF] Pass Ctx & to Relocations 2024-09-28 00:26:23 -07:00
Fangrui Song
0206181ada [ELF] Pass Ctx & to Driver and Writer 2024-09-23 21:28:14 -07:00
Fangrui Song
df0864e761 [ELF] Move elf::symtab into Ctx
Remove the global variable `symtab` and add a member variable
(`std::unique_ptr<SymbolTable>`) to `Ctx` instead.

This is one step toward eliminating global states.

Pull Request: https://github.com/llvm/llvm-project/pull/109612
2024-09-23 10:33:43 -07:00
Fangrui Song
b8248dacad [ELF] Replace remnant config-> with ctx.arg. 2024-09-22 18:03:33 -07:00
Fangrui Song
67f0277cc3 [ELF] Replace config-> with ctx.arg. in Writer 2024-09-21 23:14:09 -07:00
Fangrui Song
c64277d1b4 [ELF] Speculatively fix older MSVC after &ctx change
https://lab.llvm.org/buildbot/#/builders/107/builds/3155
```
error C2039: 'ctx': is not a member of '`anonymous-namespace'::Writer<ELFT>::fixSectionAlignments::<lambda_38c4af40b02773e966aeff2e6bd45bf2>'
```
2024-09-21 14:57:37 -07:00
Fangrui Song
49ec508596 [ELF] Pass Ctx & to Writer. NFC 2024-09-21 12:00:21 -07:00