aboutsummaryrefslogtreecommitdiff
path: root/src/glibc.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-08-31 19:26:16 +0200
committerAndrew Kelley <andrew@ziglang.org>2024-09-03 17:33:23 -0700
commit290ccb160e2d884f70ac92d2eb16d56efd380533 (patch)
treeb997efaac7edd9aac56ca5ae5d5dcf4647f8da76 /src/glibc.zig
parent7a4d69983a6ac7ab91f71910cec5886ed5bec745 (diff)
downloadzig-290ccb160e2d884f70ac92d2eb16d56efd380533.tar.gz
zig-290ccb160e2d884f70ac92d2eb16d56efd380533.zip
glibc: Avoid building and linking stub libraries that were emptied in 2.34.
Closes #20919.
Diffstat (limited to 'src/glibc.zig')
-rw-r--r--src/glibc.zig13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/glibc.zig b/src/glibc.zig
index 94c180f3d4..ee1b208cdd 100644
--- a/src/glibc.zig
+++ b/src/glibc.zig
@@ -16,6 +16,7 @@ const Module = @import("Package/Module.zig");
pub const Lib = struct {
name: []const u8,
sover: u8,
+ removed_in: ?Version = null,
};
pub const ABI = struct {
@@ -34,12 +35,12 @@ pub const ABI = struct {
// The order of the elements in this array defines the linking order.
pub const libs = [_]Lib{
.{ .name = "m", .sover = 6 },
- .{ .name = "pthread", .sover = 0 },
+ .{ .name = "pthread", .sover = 0, .removed_in = .{ .major = 2, .minor = 34, .patch = 0 } },
.{ .name = "c", .sover = 6 },
- .{ .name = "dl", .sover = 2 },
- .{ .name = "rt", .sover = 1 },
+ .{ .name = "dl", .sover = 2, .removed_in = .{ .major = 2, .minor = 34, .patch = 0 } },
+ .{ .name = "rt", .sover = 1, .removed_in = .{ .major = 2, .minor = 34, .patch = 0 } },
.{ .name = "ld", .sover = 2 },
- .{ .name = "util", .sover = 1 },
+ .{ .name = "util", .sover = 1, .removed_in = .{ .major = 2, .minor = 34, .patch = 0 } },
.{ .name = "resolv", .sover = 2 },
};
@@ -797,6 +798,10 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) !voi
defer stubs_asm.deinit();
for (libs, 0..) |lib, lib_i| {
+ if (lib.removed_in) |rem_in| {
+ if (target_version.order(rem_in) != .lt) continue;
+ }
+
stubs_asm.shrinkRetainingCapacity(0);
try stubs_asm.appendSlice(".text\n");