Skip to content

Commit 5f07afd

Browse files
committed
Add wrapper scripts for Zig cross-compilation and adjust s390x sandbox configuration
1 parent 6ef1168 commit 5f07afd

File tree

3 files changed

+41
-3
lines changed

3 files changed

+41
-3
lines changed

Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,8 +496,14 @@ bin/zig-$(ZIG_VERSION):
496496
TMPDIR=$(shell mktemp -d)
497497
wget --progress=dot:giga https://ziglang.org/download/$(ZIG_VERSION)/zig-$(ARCH)-linux-$(ZIG_VERSION).tar.xz
498498
tar -xJf zig-$(ARCH)-linux-$(ZIG_VERSION).tar.xz -C $$TMPDIR --strip-components=1
499-
mv $$TMPDIR bin/zig-$(ZIG_VERSION)
500499
rm -rf zig-$(ARCH)-linux-$(ZIG_VERSION).tar.xz
500+
501+
printf '%s\n' '#!/bin/sh' 'exec /mnt/zig cc -target s390x-linux-gnu.2.34 "$@"' > $$TMPDIR/zig-cc
502+
printf '%s\n' '#!/bin/sh' 'exec /mnt/zig c++ -target s390x-linux-gnu.2.34 "$@"' > $$TMPDIR/zig-c++
503+
chmod +x $$TMPDIR/zig-cc
504+
chmod +x $$TMPDIR/zig-c++
505+
506+
mv $$TMPDIR bin/zig-$(ZIG_VERSION)
501507
@echo "Zig installed as bin/zig-$(ZIG_VERSION)"
502508

503509
# This should be .PHONY because it's an alias/action

scripts/sandbox.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,15 @@ def main() -> int:
5151
target = "s390x-linux-gnu.2.34"
5252
additional_arguments = [
5353
f"--volume={os.getcwd()}/bin/zig-0.15.1:/mnt",
54-
f"--env=CC=/mnt/zig cc -target {target}",
55-
f"--env=CXX=/mnt/zig c++ -target {target}",
54+
# f"--env=CC=/mnt/zig cc -target {target}",
55+
# f"--env=CXX=/mnt/zig c++ -target {target}",
56+
# f"--env=CC=/mnt/zig-cc",
57+
# f"--env=CXX=/mnt/zig-c++",
58+
# -Wp,-D_FORTIFY_SOURCE=2
59+
# https://github.com/giampaolo/psutil/blob/master/setup.py#L254
60+
# defaults to using python's flags
61+
# f"--env=CFLAGS=",
62+
"--env=CXXFLAGS=-Dundefined=64",
5663
f"--unsetenv=CC",
5764
f"--unsetenv=CXX",
5865
tmpdir,

wrapper.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#! /usr/bin/env python3
2+
import os
3+
import pathlib
4+
import sys
5+
6+
def main():
7+
arg0 = pathlib.Path(sys.argv[0]).name
8+
args = []
9+
for arg in sys.argv[1:]:
10+
if arg.startswith("-Wp,-D"):
11+
args.append(arg.replace("-Wp,-D", "-D", 1))
12+
else:
13+
args.append(arg)
14+
15+
if arg0 == "zig-cc":
16+
args = ["/mnt/zig", "cc", "-target", "s390x-linux-gnu.2.34"] + args
17+
elif arg0 == "zig-c++":
18+
args = ["/mnt/zig", "c++", "-target", "s390x-linux-gnu.2.34"] + args
19+
else:
20+
raise ValueError(f"Unknown argument {arg0}")
21+
22+
os.execve(args[0], args, os.environ)
23+
24+
if __name__ == "__main__":
25+
sys.exit(main())

0 commit comments

Comments
 (0)