aboutsummaryrefslogtreecommitdiff
path: root/src/glibc.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-12-15 22:27:11 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-12-16 03:01:13 -0700
commitafb1652c50f0b25d45ccbbd7aa37f1c20cf61b0b (patch)
tree8294f2841a8c40d3cd5d473dd72241215d65ec37 /src/glibc.zig
parentbf2bd8e7220b9468c17a8d1415948e1f93a4b8f4 (diff)
downloadzig-afb1652c50f0b25d45ccbbd7aa37f1c20cf61b0b.tar.gz
zig-afb1652c50f0b25d45ccbbd7aa37f1c20cf61b0b.zip
glibc: i386: make glibc not use invalid inline asm syntax
Diffstat (limited to 'src/glibc.zig')
-rw-r--r--src/glibc.zig8
1 files changed, 8 insertions, 0 deletions
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",