From 9257669cd4ecb10c51baea2bccee993e0c82bd20 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 16 Dec 2021 03:33:37 -0700 Subject: glibc: do not pass -DSHARED to any of the libc_nonshared.a sources This essentially reverts 6a12dce207114842e2e49a3aeb18af01ab207f0b but it leaves breadcrumbs in the source explaining why things are the way they are. --- src/glibc.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/glibc.zig b/src/glibc.zig index d0f358a03f..e9c0651fdc 100644 --- a/src/glibc.zig +++ b/src/glibc.zig @@ -335,8 +335,11 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { } const shared_def = switch (dep.flavor) { - .shared => "-DSHARED", .nonshared => "-DLIBC_NONSHARED=1", + // glibc passes `-DSHARED` for these. However, empirically if + // we do that here we will see undefined symbols such as `__GI_memcpy`. + // So we pass the same thing as for nonshared. + .shared => "-DLIBC_NONSHARED=1", }; try args.appendSlice(&[_][]const u8{ "-D_LIBC_REENTRANT", -- cgit v1.2.3