authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-09-09 09:27:02-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-09-09 09:27:02-07:00
log68e61bbc0c3b896d5d549168ff8b88fe04e2269f
treeccd5e52fbb961fcbda0b602268ab9abfbe00b2c4
parentc7d6048081053c2852d4d3af5d549d83473f808c

std.zig.system.NativeTargetInfo: more headroom for libc.so.6 .dynstr


1 files changed, 3 insertions(+), 3 deletions(-)

lib/std/zig/system/NativeTargetInfo.zig+3-3
...@@ -552,14 +552,14 @@ fn glibcVerFromSoFile(file: fs.File) !std.builtin.Version {...@@ -552,14 +552,14 @@ fn glibcVerFromSoFile(file: fs.File) !std.builtin.Version {
552 // and furthermore, that the system-installed glibc is at minimum that version.552 // and furthermore, that the system-installed glibc is at minimum that version.
553553
554 // Empirically, glibc 2.34 libc.so .dynstr section is 32441 bytes on my system.554 // Empirically, glibc 2.34 libc.so .dynstr section is 32441 bytes on my system.
555 // Here I use this value plus some headroom. This makes it only need555 // Here I use double this value plus some headroom. This makes it only need
556 // a single read syscall here.556 // a single read syscall here.
557 var buf: [40000]u8 = undefined;557 var buf: [80000]u8 = undefined;
558 if (buf.len < dynstr.size) return error.InvalidGnuLibCVersion;558 if (buf.len < dynstr.size) return error.InvalidGnuLibCVersion;
559559
560 const dynstr_size = @intCast(usize, dynstr.size);560 const dynstr_size = @intCast(usize, dynstr.size);
561 const dynstr_bytes = buf[0..dynstr_size];561 const dynstr_bytes = buf[0..dynstr_size];
562 _ = try preadMin(file, dynstr_bytes, dynstr.offset, dynstr_size);562 _ = try preadMin(file, dynstr_bytes, dynstr.offset, dynstr_bytes.len);
563 var it = mem.split(u8, dynstr_bytes, &.{0});563 var it = mem.split(u8, dynstr_bytes, &.{0});
564 var max_ver: std.builtin.Version = .{ .major = 2, .minor = 2, .patch = 5 };564 var max_ver: std.builtin.Version = .{ .major = 2, .minor = 2, .patch = 5 };
565 while (it.next()) |s| {565 while (it.next()) |s| {