aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf/SharedObject.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-01-02 14:11:27 -0800
committerGitHub <noreply@github.com>2024-01-02 14:11:27 -0800
commit289ae45c1b58e952867c4fa1e246d0ef7bc2ff64 (patch)
tree5dd034143a2354b7b44496e684f1c764e2f9664c /src/link/Elf/SharedObject.zig
parentc89bb3e141ee215add0b52930d48bffd8dae8342 (diff)
parentc546ddb3edc557fae4b932e5239b9dcb66117832 (diff)
downloadzig-289ae45c1b58e952867c4fa1e246d0ef7bc2ff64.tar.gz
zig-289ae45c1b58e952867c4fa1e246d0ef7bc2ff64.zip
Merge pull request #18160 from ziglang/std-build-module
Move many settings from being per-Compilation to being per-Module
Diffstat (limited to 'src/link/Elf/SharedObject.zig')
-rw-r--r--src/link/Elf/SharedObject.zig15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/link/Elf/SharedObject.zig b/src/link/Elf/SharedObject.zig
index 2a39477805..e5e87cc51e 100644
--- a/src/link/Elf/SharedObject.zig
+++ b/src/link/Elf/SharedObject.zig
@@ -47,13 +47,15 @@ pub fn deinit(self: *SharedObject, allocator: Allocator) void {
}
pub fn parse(self: *SharedObject, elf_file: *Elf) !void {
- const gpa = elf_file.base.allocator;
+ const comp = elf_file.base.comp;
+ const gpa = comp.gpa;
var stream = std.io.fixedBufferStream(self.data);
const reader = stream.reader();
self.header = try reader.readStruct(elf.Elf64_Ehdr);
- if (elf_file.base.options.target.cpu.arch != self.header.?.e_machine.toTargetCpuArch().?) {
+ const target = elf_file.base.comp.root_mod.resolved_target.result;
+ if (target.cpu.arch != self.header.?.e_machine.toTargetCpuArch().?) {
try elf_file.reportParseError2(
self.index,
"invalid cpu architecture: {s}",
@@ -100,7 +102,8 @@ pub fn parse(self: *SharedObject, elf_file: *Elf) !void {
}
fn parseVersions(self: *SharedObject, elf_file: *Elf) !void {
- const gpa = elf_file.base.allocator;
+ const comp = elf_file.base.comp;
+ const gpa = comp.gpa;
const symtab = self.getSymtabRaw();
try self.verstrings.resize(gpa, 2);
@@ -145,7 +148,8 @@ fn parseVersions(self: *SharedObject, elf_file: *Elf) !void {
}
pub fn init(self: *SharedObject, elf_file: *Elf) !void {
- const gpa = elf_file.base.allocator;
+ const comp = elf_file.base.comp;
+ const gpa = comp.gpa;
const symtab = self.getSymtabRaw();
const strtab = self.getStrtabRaw();
@@ -294,7 +298,8 @@ pub fn initSymbolAliases(self: *SharedObject, elf_file: *Elf) !void {
}
};
- const gpa = elf_file.base.allocator;
+ const comp = elf_file.base.comp;
+ const gpa = comp.gpa;
var aliases = std.ArrayList(Symbol.Index).init(gpa);
defer aliases.deinit();
try aliases.ensureTotalCapacityPrecise(self.globals().len);