-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Open
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behavioros-linuxLinuxLinuxos-macosmacOSmacOSzig build systemstd.Build, the build runner, `zig build` subcommand, package managementstd.Build, the build runner, `zig build` subcommand, package management
Milestone
Description
Zig Version
0.10.0-dev.1107+7deadf430
Steps to Reproduce
src/main.zig:
const c = @cImport({
@cInclude("X11/Xlib.h");
});
pub fn main() void {
_ = c.XFree(null);
}build.zig:
const std = @import("std");
pub fn build(b: *std.build.Builder) void {
const target = b.standardTargetOptions(.{});
const mode = b.standardReleaseOptions();
const exe = b.addExecutable("tmp", "src/main.zig");
exe.setTarget(target);
exe.setBuildMode(mode);
exe.install();
exe.linkLibC();
exe.linkSystemLibrary("X11");
}
brew install libx11
zig build -Dtarget=x86_64-linux-gnu --verbose
May only reproduce on x86 mac.
Expected Behavior
Zig should not attempt to use macOS headers/libraries when cross compiling to Linux.
Actual Behavior
Zig attempts to link a macOS library, and includes headers likely intended for macOS only, when building a binary for Linux:
/usr/local/bin/zig build-exe /Users/slimsag/Desktop/tmp/src/main.zig -lc -lX11 --cache-dir /Users/slimsag/Desktop/tmp/zig-cache --global-cache-dir /Users/slimsag/.cache/zig --name tmp -target x86_64-linux-gnu -mcpu x86_64 -I /usr/local/Cellar/libx11/1.7.3.1/include -I /usr/local/Cellar/libxcb/1.14_2/include -I /usr/local/Cellar/libxau/1.0.9/include -I /usr/local/Cellar/libxdmcp/1.1.3/include -I /usr/local/Cellar/xorgproto/2021.5/include -L /usr/local/Cellar/libx11/1.7.3.1/lib --enable-cache
ld.lld: error: undefined symbol: XFree
>>> referenced by main.zig:5
>>> /Users/slimsag/Desktop/tmp/zig-cache/o/01c3b52bbbabfbd0f8208918be0f4f24/tmp.o:(main.0)
>>> did you mean: _XFree
>>> defined in: /usr/local/Cellar/libx11/1.7.3.1/lib/libX11.a
error: LLDReportedFailure
tmp...The following command exited with error code 1:
/usr/local/bin/zig build-exe /Users/slimsag/Desktop/tmp/src/main.zig -lc -lX11 --cache-dir /Users/slimsag/Desktop/tmp/zig-cache --global-cache-dir /Users/slimsag/.cache/zig --name tmp -target x86_64-linux-gnu -mcpu x86_64 -I /usr/local/Cellar/libx11/1.7.3.1/include -I /usr/local/Cellar/libxcb/1.14_2/include -I /usr/local/Cellar/libxau/1.0.9/include -I /usr/local/Cellar/libxdmcp/1.1.3/include -I /usr/local/Cellar/xorgproto/2021.5/include -L /usr/local/Cellar/libx11/1.7.3.1/lib --enable-cache
error: the following build command failed with exit code 1:
/Users/slimsag/Desktop/tmp/zig-cache/o/2c392a7290db5827809b38e1a5c90300/build /usr/local/bin/zig /Users/slimsag/Desktop/tmp /Users/slimsag/Desktop/tmp/zig-cache /Users/slimsag/.cache/zig -Dtarget=x86_64-linux-gnu --verbose
Metadata
Metadata
Assignees
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behavioros-linuxLinuxLinuxos-macosmacOSmacOSzig build systemstd.Build, the build runner, `zig build` subcommand, package managementstd.Build, the build runner, `zig build` subcommand, package management