From 5b56bd0affea7b02b540bdbc4d1d271b0e4fc885 Mon Sep 17 00:00:00 2001
From: Damien Miller <djm@mindrot.org>
Date: Fri, 17 Jul 2020 13:15:50 +1000
Subject: [PATCH] detect Linux/X32 systems

This is a frankenstein monster of AMD64 instructions/calling conventions
but with a 4GB address space. Allegedly deprecated but people still run
into it causing weird sandbox failures, e.g. bz#3085
---
 configure.ac | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/configure.ac b/configure.ac
index c03db2732..ff7417354 100644
--- a/configure.ac
+++ b/configure.ac
@@ -522,6 +522,8 @@ SPP_MSG="no"
 # the --with-solaris-privs option and --with-sandbox=solaris).
 SOLARIS_PRIVS="no"
 
+AC_CHECK_SIZEOF([size_t])
+
 # Check for some target-specific stuff
 case "$host" in
 *-*-aix*)
@@ -864,6 +866,10 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
 	case "$host" in
 	x86_64-*)
 		seccomp_audit_arch=AUDIT_ARCH_X86_64
+		# X32: AMD64 instructions in 32bit address space.
+		if test "x$ac_cv_sizeof_size_t" = "x4" ; then
+			seccomp_audit_arch=AUDIT_ARCH_I386
+		fi
 		;;
 	i*86-*)
 		seccomp_audit_arch=AUDIT_ARCH_I386