diff options
| author | Sébastien Marie <semarie@online.fr> | 2020-12-14 14:01:39 +0000 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-12-15 14:53:23 -0500 |
| commit | 96e3222796df6124a54b1261936d8262b660fbf4 (patch) | |
| tree | ac9f929ac1aec4ce5e3ec24c23817e75f733c73b /src | |
| parent | 8bf5a3a5c1b5dd814d6a0fc47a4182ff5ecfe77d (diff) | |
| download | zig-96e3222796df6124a54b1261936d8262b660fbf4.tar.gz zig-96e3222796df6124a54b1261936d8262b660fbf4.zip | |
openbsd: crt0.o file is different when build static or dynamic mode
it is a first step for support static *and* dynamic mode for openbsd
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/Elf.zig | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 0a7b77ddbb..180ad95c00 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1441,8 +1441,14 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void { if (link_in_crt) { const crt1o: []const u8 = o: { - if (target.os.tag == .netbsd or target.os.tag == .openbsd) { + if (target.os.tag == .netbsd) { break :o "crt0.o"; + } else if (target.os.tag == .openbsd) { + if (self.base.options.link_mode == .Static) { + break :o "rcrt0.o"; + } else { + break :o "crt0.o"; + } } else if (target.isAndroid()) { if (self.base.options.link_mode == .Dynamic) { break :o "crtbegin_dynamic.o"; |
