mirror of
https://github.com/novatiq/packages.git
synced 2026-04-30 07:28:39 +01:00
podman: fix build on MIPS
Signed-off-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
committed by
Daniel Golle
parent
be75f77973
commit
83d81616c5
@@ -0,0 +1,134 @@
|
||||
From 1ad796677e1ce3f03463c791818176586987c389 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Holzinger <paul.holzinger@web.de>
|
||||
Date: Mon, 21 Dec 2020 12:30:06 +0100
|
||||
Subject: [PATCH] Fix build for mips architecture
|
||||
|
||||
The signal SIGSTKFLT does not exists on mips architectures.
|
||||
Also RTMIN and RTMAX are different.
|
||||
|
||||
This code is copied from docker.
|
||||
|
||||
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
|
||||
---
|
||||
pkg/signal/signal_linux.go | 1 +
|
||||
pkg/signal/signal_linux_mipsx.go | 106 +++++++++++++++++++++++++++++++
|
||||
2 files changed, 107 insertions(+)
|
||||
create mode 100644 pkg/signal/signal_linux_mipsx.go
|
||||
|
||||
--- a/pkg/signal/signal_linux.go
|
||||
+++ b/pkg/signal/signal_linux.go
|
||||
@@ -1,4 +1,5 @@
|
||||
// +build linux
|
||||
+// +build !mips,!mipsle,!mips64,!mips64le
|
||||
|
||||
// Signal handling for Linux only.
|
||||
package signal
|
||||
--- /dev/null
|
||||
+++ b/pkg/signal/signal_linux_mipsx.go
|
||||
@@ -0,0 +1,106 @@
|
||||
+// +build linux
|
||||
+// +build mips mipsle mips64 mips64le
|
||||
+
|
||||
+// Special signal handling for mips architecture
|
||||
+package signal
|
||||
+
|
||||
+// Copyright 2013-2018 Docker, Inc.
|
||||
+
|
||||
+// NOTE: this package has originally been copied from github.com/docker/docker.
|
||||
+
|
||||
+import (
|
||||
+ "os"
|
||||
+ "os/signal"
|
||||
+ "syscall"
|
||||
+
|
||||
+ "golang.org/x/sys/unix"
|
||||
+)
|
||||
+
|
||||
+const (
|
||||
+ sigrtmin = 34
|
||||
+ sigrtmax = 127
|
||||
+)
|
||||
+
|
||||
+// signalMap is a map of Linux signals.
|
||||
+var signalMap = map[string]syscall.Signal{
|
||||
+ "ABRT": unix.SIGABRT,
|
||||
+ "ALRM": unix.SIGALRM,
|
||||
+ "BUS": unix.SIGBUS,
|
||||
+ "CHLD": unix.SIGCHLD,
|
||||
+ "CLD": unix.SIGCLD,
|
||||
+ "CONT": unix.SIGCONT,
|
||||
+ "FPE": unix.SIGFPE,
|
||||
+ "HUP": unix.SIGHUP,
|
||||
+ "ILL": unix.SIGILL,
|
||||
+ "INT": unix.SIGINT,
|
||||
+ "IO": unix.SIGIO,
|
||||
+ "IOT": unix.SIGIOT,
|
||||
+ "KILL": unix.SIGKILL,
|
||||
+ "PIPE": unix.SIGPIPE,
|
||||
+ "POLL": unix.SIGPOLL,
|
||||
+ "PROF": unix.SIGPROF,
|
||||
+ "PWR": unix.SIGPWR,
|
||||
+ "QUIT": unix.SIGQUIT,
|
||||
+ "SEGV": unix.SIGSEGV,
|
||||
+ "EMT": unix.SIGEMT,
|
||||
+ "STOP": unix.SIGSTOP,
|
||||
+ "SYS": unix.SIGSYS,
|
||||
+ "TERM": unix.SIGTERM,
|
||||
+ "TRAP": unix.SIGTRAP,
|
||||
+ "TSTP": unix.SIGTSTP,
|
||||
+ "TTIN": unix.SIGTTIN,
|
||||
+ "TTOU": unix.SIGTTOU,
|
||||
+ "URG": unix.SIGURG,
|
||||
+ "USR1": unix.SIGUSR1,
|
||||
+ "USR2": unix.SIGUSR2,
|
||||
+ "VTALRM": unix.SIGVTALRM,
|
||||
+ "WINCH": unix.SIGWINCH,
|
||||
+ "XCPU": unix.SIGXCPU,
|
||||
+ "XFSZ": unix.SIGXFSZ,
|
||||
+ "RTMIN": sigrtmin,
|
||||
+ "RTMIN+1": sigrtmin + 1,
|
||||
+ "RTMIN+2": sigrtmin + 2,
|
||||
+ "RTMIN+3": sigrtmin + 3,
|
||||
+ "RTMIN+4": sigrtmin + 4,
|
||||
+ "RTMIN+5": sigrtmin + 5,
|
||||
+ "RTMIN+6": sigrtmin + 6,
|
||||
+ "RTMIN+7": sigrtmin + 7,
|
||||
+ "RTMIN+8": sigrtmin + 8,
|
||||
+ "RTMIN+9": sigrtmin + 9,
|
||||
+ "RTMIN+10": sigrtmin + 10,
|
||||
+ "RTMIN+11": sigrtmin + 11,
|
||||
+ "RTMIN+12": sigrtmin + 12,
|
||||
+ "RTMIN+13": sigrtmin + 13,
|
||||
+ "RTMIN+14": sigrtmin + 14,
|
||||
+ "RTMIN+15": sigrtmin + 15,
|
||||
+ "RTMAX-14": sigrtmax - 14,
|
||||
+ "RTMAX-13": sigrtmax - 13,
|
||||
+ "RTMAX-12": sigrtmax - 12,
|
||||
+ "RTMAX-11": sigrtmax - 11,
|
||||
+ "RTMAX-10": sigrtmax - 10,
|
||||
+ "RTMAX-9": sigrtmax - 9,
|
||||
+ "RTMAX-8": sigrtmax - 8,
|
||||
+ "RTMAX-7": sigrtmax - 7,
|
||||
+ "RTMAX-6": sigrtmax - 6,
|
||||
+ "RTMAX-5": sigrtmax - 5,
|
||||
+ "RTMAX-4": sigrtmax - 4,
|
||||
+ "RTMAX-3": sigrtmax - 3,
|
||||
+ "RTMAX-2": sigrtmax - 2,
|
||||
+ "RTMAX-1": sigrtmax - 1,
|
||||
+ "RTMAX": sigrtmax,
|
||||
+}
|
||||
+
|
||||
+// CatchAll catches all signals and relays them to the specified channel.
|
||||
+func CatchAll(sigc chan os.Signal) {
|
||||
+ handledSigs := make([]os.Signal, 0, len(signalMap))
|
||||
+ for _, s := range signalMap {
|
||||
+ handledSigs = append(handledSigs, s)
|
||||
+ }
|
||||
+ signal.Notify(sigc, handledSigs...)
|
||||
+}
|
||||
+
|
||||
+// StopCatch stops catching the signals and closes the specified channel.
|
||||
+func StopCatch(sigc chan os.Signal) {
|
||||
+ signal.Stop(sigc)
|
||||
+ close(sigc)
|
||||
+}
|
||||
Reference in New Issue
Block a user