From 1038e5a8d808ac80da93d03a4eaee6a223c1328f Mon Sep 17 00:00:00 2001
From: Armin Preiml <apreiml@strohwolke.at>
Date: Tue, 15 Nov 2022 13:22:34 +0100
Subject: [PATCH hare] rt: make alarm syscall only available to x86_64
It's not available in aarch64.
Signed-off-by: Armin Preiml <apreiml@strohwolke.at>
---
rt/+linux/syscalls.ha | 4 ----
rt/+linux/syscallsarch+x86_64.ha | 7 +++++++
scripts/gen-stdlib | 1 +
stdlib.mk | 2 ++
4 files changed, 10 insertions(+), 4 deletions(-)
create mode 100644 rt/+linux/syscallsarch+x86_64.ha
diff --git a/rt/+linux/syscalls.ha b/rt/+linux/syscalls.ha
index e9e79dd9..c6a79746 100644
--- a/rt/+linux/syscalls.ha
+++ b/rt/+linux/syscalls.ha
@@ -864,10 +864,6 @@ export fn tee(fd_in: int, fd_out: int, ln: size, flags: uint) (size | errno) = {
ln: u64, flags: u64))?: size;
};
-export fn alarm(seconds: uint) uint = {
- return syscall1(SYS_alarm, seconds: u64): uint;
-};
-
export fn fallocate(fd: int, mode: int, off: i64, ln: i64) (void | errno) = {
wrap_return(syscall4(SYS_fallocate,
fd: u64, mode: u64, off: u64, ln: u64))?;
diff --git a/rt/+linux/syscallsarch+x86_64.ha b/rt/+linux/syscallsarch+x86_64.ha
new file mode 100644
index 00000000..f3b5896b
--- /dev/null
+++ b/rt/+linux/syscallsarch+x86_64.ha
@@ -0,0 +1,7 @@
+// License: MPL-2.0
+// (c) 2022 Sebastian <sebastian@sebsite.pw>
+
+export fn alarm(seconds: uint) uint = {
+ return syscall1(SYS_alarm, seconds: u64): uint;
+};
+
diff --git a/scripts/gen-stdlib b/scripts/gen-stdlib
index 2697689c..5d6a1cb7 100755
--- a/scripts/gen-stdlib
+++ b/scripts/gen-stdlib
@@ -29,6 +29,7 @@ gensrcs_rt() {
+linux/'+$(ARCH)'.ha \
+linux/syscallno+'$(ARCH)'.ha \
+linux/syscalls.ha \
+ +linux/syscallsarch+'$(ARCH)'.ha \
+linux/signal.ha \
+linux/stat.ha \
+linux/socket.ha \
diff --git a/stdlib.mk b/stdlib.mk
index e2ec0678..4baf7909 100644
--- a/stdlib.mk
+++ b/stdlib.mk
@@ -13,6 +13,7 @@ stdlib_rt_linux_srcs = \
$(STDLIB)/rt/+linux/+$(ARCH).ha \
$(STDLIB)/rt/+linux/syscallno+$(ARCH).ha \
$(STDLIB)/rt/+linux/syscalls.ha \
+ $(STDLIB)/rt/+linux/syscallsarch+$(ARCH).ha \
$(STDLIB)/rt/+linux/signal.ha \
$(STDLIB)/rt/+linux/stat.ha \
$(STDLIB)/rt/+linux/socket.ha \
@@ -2183,6 +2184,7 @@ testlib_rt_linux_srcs = \
$(STDLIB)/rt/+linux/+$(ARCH).ha \
$(STDLIB)/rt/+linux/syscallno+$(ARCH).ha \
$(STDLIB)/rt/+linux/syscalls.ha \
+ $(STDLIB)/rt/+linux/syscallsarch+$(ARCH).ha \
$(STDLIB)/rt/+linux/signal.ha \
$(STDLIB)/rt/+linux/stat.ha \
$(STDLIB)/rt/+linux/socket.ha \
--
2.38.1