- Issue #23968: Rename the platform directory from plat-$(MACHDEP) to
  plat-$(PLATFORM_TRIPLET).
  Rename the config directory (LIBPL) from config-$(LDVERSION) to
  config-$(LDVERSION)-$(PLATFORM_TRIPLET).
  Install the platform specifc _sysconfigdata module into the platform
  directory and rename it to include the ABIFLAGS.
diff --git a/Lib/plat-linux/regen b/Lib/plat-linux/regen
index c76950e..10633cb 100755
--- a/Lib/plat-linux/regen
+++ b/Lib/plat-linux/regen
@@ -1,8 +1,33 @@
 #! /bin/sh
 case `uname` in
-Linux*)	;;
+Linux*|GNU*)	;;
 *)	echo Probably not on a Linux system 1>&2
 	exit 1;;
 esac
-set -v
-h2py -i '(u_long)' /usr/include/sys/types.h /usr/include/netinet/in.h /usr/include/dlfcn.h
+if [ -z "$CC" ]; then
+    echo >&2 "$(basename $0): CC is not set"
+    exit 1
+fi
+headers="sys/types.h netinet/in.h dlfcn.h"
+incdirs="$(echo $($CC -v -E - < /dev/null 2>&1|awk '/^#include/, /^End of search/' | grep '^ '))"
+if [ -z "$incdirs" ]; then
+    incdirs="/usr/include"
+fi
+for h in $headers; do
+    absh=
+    for d in $incdirs; do
+	if [ -f "$d/$h" ]; then
+	    absh="$d/$h"
+	    break
+	fi
+    done
+    if [ -n "$absh" ]; then
+	absheaders="$absheaders $absh"
+    else
+	echo >&2 "$(basename $0): header $h not found"
+	exit 1
+    fi
+done
+
+set -x
+${H2PY:-h2py} -i '(u_long)' $absheaders