Packages/packages/admin/gotop/patches/010-Fix-build-failure-on-riscv64-caused-by-missing-syscall.patch
2024-12-04 10:20:13 +08:00

77 lines
1.7 KiB
Diff

From 658926bd0fa8e15c75c4db1426f2b20307312870 Mon Sep 17 00:00:00 2001
From: Camber Huang <camber@poi.science>
Date: Mon, 9 May 2022 14:04:06 +0800
Subject: [PATCH] Fix build failure on riscv64 caused by missing syscall
On RISC-V 64-bit linux systems, syscall `dup2()` is not available, therefore
syscall.Dup2 will be undefined and gotop will fail to be built from soure.
This patch updates building target of logging/logging_{other,arm64} and
renames them based on syscall used.
---
logging/{logging_other.go => logging_dup2.go} | 2 +-
logging/{logging_arm64.go => logging_dup3.go} | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
rename logging/{logging_other.go => logging_dup2.go} (67%)
rename logging/{logging_arm64.go => logging_dup3.go} (73%)
--- a/logging/logging_other.go
+++ /dev/null
@@ -1,12 +0,0 @@
-// +build linux,!arm64 openbsd,!arm64 freebsd darwin
-
-package logging
-
-import (
- "os"
- "syscall"
-)
-
-func stderrToLogfile(logfile *os.File) {
- syscall.Dup2(int(logfile.Fd()), 2)
-}
--- /dev/null
+++ b/logging/logging_dup2.go
@@ -0,0 +1,12 @@
+// +build linux,!arm64,!riscv64 openbsd,!arm64 freebsd darwin
+
+package logging
+
+import (
+ "os"
+ "syscall"
+)
+
+func stderrToLogfile(logfile *os.File) {
+ syscall.Dup2(int(logfile.Fd()), 2)
+}
--- a/logging/logging_arm64.go
+++ /dev/null
@@ -1,12 +0,0 @@
-// +build !freebsd,!darwin,arm64
-
-package logging
-
-import (
- "os"
- "syscall"
-)
-
-func stderrToLogfile(logfile *os.File) {
- syscall.Dup3(int(logfile.Fd()), 2, 0)
-}
--- /dev/null
+++ b/logging/logging_dup3.go
@@ -0,0 +1,12 @@
+// +build !freebsd,!darwin,arm64 linux,riscv64
+
+package logging
+
+import (
+ "os"
+ "syscall"
+)
+
+func stderrToLogfile(logfile *os.File) {
+ syscall.Dup3(int(logfile.Fd()), 2, 0)
+}