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