From afb1652c50f0b25d45ccbbd7aa37f1c20cf61b0b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 15 Dec 2021 22:27:11 -0700 Subject: [PATCH] glibc: i386: make glibc not use invalid inline asm syntax --- src/glibc.zig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/glibc.zig b/src/glibc.zig index f74fa55dcb..ecb3f26995 100644 --- a/src/glibc.zig +++ b/src/glibc.zig @@ -269,6 +269,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { return comp.build_crt_file("Scrt1", .Obj, &[_]Compilation.CSourceFile{ start_os, abi_note_o }); }, .libc_nonshared_a => { + const target = comp.getTarget(); const s = path.sep_str; const linux_prefix = lib_libc_glibc ++ "sysdeps" ++ s ++ "unix" ++ s ++ "sysv" ++ s ++ "linux" ++ s; @@ -354,6 +355,13 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { }); try add_include_dirs(comp, arena, &args); + if (target.cpu.arch == .i386) { + // This prevents i386/sysdep.h from trying to do some + // silly and unnecessary inline asm hack that uses weird + // syntax that clang does not support. + try args.append("-DCAN_USE_REGISTER_ASM_EBP"); + } + const shared_def = switch (dep.flavor) { .shared => "-DSHARED", .nonshared => "-DLIBC_NONSHARED=1",