aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2023-02-28 00:53:01 +0100
committerStefano Brivio <sbrivio@redhat.com>2023-03-09 00:36:03 +0100
commit0d8c114aa25cb093607feea5d98ce81d7389aa73 (patch)
tree87f77a218c2f0d1fb9f7c4fc1f1cc66a1d6e8419
parentc538ee8d695de053dc9da8965c85997a79fb6cb2 (diff)
downloadpasst-0d8c114aa25cb093607feea5d98ce81d7389aa73.tar
passt-0d8c114aa25cb093607feea5d98ce81d7389aa73.tar.gz
passt-0d8c114aa25cb093607feea5d98ce81d7389aa73.tar.bz2
passt-0d8c114aa25cb093607feea5d98ce81d7389aa73.tar.lz
passt-0d8c114aa25cb093607feea5d98ce81d7389aa73.tar.xz
passt-0d8c114aa25cb093607feea5d98ce81d7389aa73.tar.zst
passt-0d8c114aa25cb093607feea5d98ce81d7389aa73.zip
Makefile, seccomp.sh: Fix cross-builds, adjust syscalls list to compiler
Debian cross-building automatic checks: http://crossqa.debian.net/src/passt currently fail because we don't use the right target architecture and compiler while building the system call lists and resolving their numbers in seccomp.sh. Pass ARCH and CC to seccomp.sh and use them. Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--Makefile2
-rwxr-xr-xseccomp.sh7
2 files changed, 6 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 667ddfb..e5723a7 100644
--- a/Makefile
+++ b/Makefile
@@ -105,7 +105,7 @@ static: FLAGS += -static -DGLIBC_NO_STATIC_NSS
static: clean all
seccomp.h: seccomp.sh $(PASST_SRCS) $(PASST_HEADERS)
- @ EXTRA_SYSCALLS="$(EXTRA_SYSCALLS)" ./seccomp.sh $(PASST_SRCS) $(PASST_HEADERS)
+ @ EXTRA_SYSCALLS="$(EXTRA_SYSCALLS)" ARCH="$(TARGET_ARCH)" CC="$(CC)" ./seccomp.sh $(PASST_SRCS) $(PASST_HEADERS)
passt: $(PASST_SRCS) $(HEADERS)
$(CC) $(FLAGS) $(CFLAGS) $(CPPFLAGS) $(PASST_SRCS) -o passt $(LDFLAGS)
diff --git a/seccomp.sh b/seccomp.sh
index 31ea8da..b075efd 100755
--- a/seccomp.sh
+++ b/seccomp.sh
@@ -17,6 +17,9 @@ TMP="$(mktemp)"
IN="$@"
OUT="seccomp.h"
+[ -z "${ARCH}" ] && ARCH="$(uname -m)"
+[ -z "${CC}" ] && CC="cc"
+
HEADER="/* This file was automatically generated by $(basename ${0}) */
#ifndef AUDIT_ARCH_PPC64LE
@@ -110,7 +113,7 @@ log2() {
# $1: Name of syscall
syscall_nr() {
__in="$(printf "#include <asm-generic/unistd.h>\n#include <sys/syscall.h>\n__NR_%s" ${1})"
- __out="$(echo "${__in}" | cc -E -xc - -o - | tail -1)"
+ __out="$(echo "${__in}" | ${CC} -E -xc - -o - | tail -1)"
[ "${__out}" = "__NR_$1" ] && return 1
# Output might be in the form "(x + y)" (seen on armv6l, armv7l)
@@ -125,7 +128,7 @@ filter() {
case ${__c} in
*:*)
case ${__c} in
- $(uname -m):*)
+ ${ARCH}:*)
__arch_match=1
__c=${__c##*:}
;;