bpo-31904: Add cross-build support for VxWorks RTOS (GH-11968)
diff --git a/configure b/configure
index d98d14a..d0ef8a6 100755
--- a/configure
+++ b/configure
@@ -3268,6 +3268,9 @@
*-*-cygwin*)
ac_sys_system=Cygwin
;;
+ *-*-vxworks*)
+ ac_sys_system=VxWorks
+ ;;
*)
# for now, limit cross builds to known configurations
MACHDEP="unknown"
@@ -3312,6 +3315,9 @@
*-*-cygwin*)
_host_cpu=
;;
+ *-*-vxworks*)
+ _host_cpu=$host_cpu
+ ;;
*)
# for now, limit cross builds to known configurations
MACHDEP="unknown"
@@ -3399,6 +3405,11 @@
QNX/6.3.2)
define_xopen_source=no
;;
+ # On VxWorks, defining _XOPEN_SOURCE causes compile failures
+ # in network headers still using system V types.
+ VxWorks/*)
+ define_xopen_source=no
+ ;;
esac
@@ -5283,6 +5294,8 @@
i386-gnu
#elif defined(__APPLE__)
darwin
+#elif defined(__VXWORKS__)
+ vxworks
#else
# error unknown platform triplet
#endif
@@ -9391,7 +9404,7 @@
BLDSHARED="$LDSHARED"
fi
;;
- Linux*|GNU*|QNX*)
+ Linux*|GNU*|QNX*|VxWorks*)
LDSHARED='$(CC) -shared'
LDCXXSHARED='$(CXX) -shared';;
FreeBSD*)
@@ -9472,6 +9485,8 @@
then CCSHARED="-fPIC"
else CCSHARED="-Kpic -belf"
fi;;
+ VxWorks*)
+ CCSHARED="-fpic -D__SO_PICABILINUX__ -ftls-model=global-dynamic"
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCSHARED" >&5
@@ -9530,6 +9545,8 @@
# to 2048 kilobytes so that the stack doesn't overflow
# when running test_compile.py.
LINKFORSHARED='-Wl,-E -N 2048K';;
+ VxWorks*)
+ LINKFORSHARED='--export-dynamic';;
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINKFORSHARED" >&5
@@ -15079,7 +15096,7 @@
case $ac_sys_system in
- Linux*|GNU*|Darwin)
+ Linux*|GNU*|Darwin|VxWorks)
EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX};;
*)
EXT_SUFFIX=${SHLIB_SUFFIX};;