aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSébastien Marie <semarie@online.fr>2020-12-14 14:01:39 +0000
committerAndrew Kelley <andrew@ziglang.org>2020-12-15 14:53:23 -0500
commit96e3222796df6124a54b1261936d8262b660fbf4 (patch)
treeac9f929ac1aec4ce5e3ec24c23817e75f733c73b /src
parent8bf5a3a5c1b5dd814d6a0fc47a4182ff5ecfe77d (diff)
downloadzig-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.zig8
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";