aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-08-27 15:34:13 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-09-04 13:34:25 +0200
commit8f1ce3c85b6463206147119dd56ba415f6e4d28e (patch)
tree024f64298156935c3b24ebf4501a33ac81558772 /src
parentd32af9ea2ade7c447ac8b882076dba337a10dc51 (diff)
downloadzig-8f1ce3c85b6463206147119dd56ba415f6e4d28e.tar.gz
zig-8f1ce3c85b6463206147119dd56ba415f6e4d28e.zip
elf: shuffle some stages to make it clear what needs what
Diffstat (limited to 'src')
-rw-r--r--src/link/Elf.zig10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 1ef5a562a8..bfbc34503f 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -1049,14 +1049,16 @@ pub fn flushModule(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_nod
try self.initSyntheticSections();
try self.initSpecialPhdrs();
try self.sortShdrs();
- for (self.objects.items) |index| {
- try self.file(index).?.object.addAtomsToOutputSections(self);
- }
- try self.sortInitFini();
+
try self.setDynamicSection(rpath_table.keys());
self.sortDynamicSymtab();
try self.setHashSections();
try self.setVersionSymtab();
+
+ for (self.objects.items) |index| {
+ try self.file(index).?.object.addAtomsToOutputSections(self);
+ }
+ try self.sortInitFini();
try self.updateMergeSectionSizes();
try self.updateSectionSizes();