aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-05-12 16:41:20 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-05-12 16:41:20 -0700
commitc9cc09a3bfb45d93b84577238047cd69ef0a7d88 (patch)
tree1686cda92ae0c5d9ae55c02e7755c55d4e6f3c18 /src/link/Elf.zig
parent71afc3088009944fcd8339ac71e69a0b77a781ab (diff)
parent40a47eae65b918866abc9d745f89d837f6a1e591 (diff)
downloadzig-c9cc09a3bfb45d93b84577238047cd69ef0a7d88.tar.gz
zig-c9cc09a3bfb45d93b84577238047cd69ef0a7d88.zip
Merge remote-tracking branch 'origin/master' into stage2-whole-file-astgen
Conflicts: * lib/std/os/linux.zig * lib/std/os/windows/bits.zig * src/Module.zig * src/Sema.zig * test/stage2/test.zig Mainly I wanted Jakub's new macOS code for respecting stack size, since we now depend on it for debug builds able to pass one of the test cases for recursive comptime function calls with `@setEvalBranchQuota`. The conflicts were all trivial.
Diffstat (limited to 'src/link/Elf.zig')
-rw-r--r--src/link/Elf.zig25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 3f87fd390b..7b1c5474a7 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -1648,19 +1648,18 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
// libc dep
if (self.base.options.link_libc) {
if (self.base.options.libc_installation != null) {
- if (self.base.options.link_mode == .Static) {
- try argv.append("--start-group");
- try argv.append("-lc");
- try argv.append("-lm");
- try argv.append("--end-group");
- } else {
- try argv.append("-lc");
- try argv.append("-lm");
- }
-
- if (target.os.tag == .freebsd or target.os.tag == .netbsd or target.os.tag == .openbsd) {
- try argv.append("-lpthread");
- }
+ const needs_grouping = self.base.options.link_mode == .Static;
+ if (needs_grouping) try argv.append("--start-group");
+ // This matches the order of glibc.libs
+ try argv.appendSlice(&[_][]const u8{
+ "-lm",
+ "-lpthread",
+ "-lc",
+ "-ldl",
+ "-lrt",
+ "-lutil",
+ });
+ if (needs_grouping) try argv.append("--end-group");
} else if (target.isGnuLibC()) {
try argv.append(comp.libunwind_static_lib.?.full_object_path);
for (glibc.libs) |lib| {