From c50c3a47b328c10780f4453b925a3e36d182c2bd Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 14 Mar 2017 09:43:50 +0100 Subject: [PATCH] configure detects which set of prebuilt binaries to use * configure.ac: Use detected endianness and word size to automatically select which set of prebuilt binaries to use. * meta/build-env.in (top_builddir): * meta/uninstalled-env.in (top_builddir): Update to use SCM_PREBUILT_BINARIES for prebuilt entry in GUILE_LOAD_COMPILED_PATH. * prebuilt/32-bit-big-endian: * prebuilt/32-bit-little-endian: * prebuilt/64-bit-little-endian: New links. * prebuilt/x86_64-pc-linux-gnu: Remove this link now that it's unneeded. --- configure.ac | 12 ++++++++++++ meta/build-env.in | 4 ++-- meta/uninstalled-env.in | 4 ++-- prebuilt/32-bit-big-endian | 1 + prebuilt/32-bit-little-endian | 1 + prebuilt/64-bit-little-endian | 1 + prebuilt/x86_64-pc-linux-gnu | 1 - 7 files changed, 19 insertions(+), 5 deletions(-) create mode 120000 prebuilt/32-bit-big-endian create mode 120000 prebuilt/32-bit-little-endian create mode 120000 prebuilt/64-bit-little-endian delete mode 120000 prebuilt/x86_64-pc-linux-gnu diff --git a/configure.ac b/configure.ac index 24ee878d5..217364bbf 100644 --- a/configure.ac +++ b/configure.ac @@ -631,6 +631,18 @@ AC_SUBST([SCM_I_GSC_T_UINTPTR]) AC_SUBST([SCM_I_GSC_NEEDS_STDINT_H]) AC_SUBST([SCM_I_GSC_NEEDS_INTTYPES_H]) +AC_MSG_CHECKING([for which prebuilt binary set to use during bootstrap]) +SCM_PREBUILT_BINARIES= +case "$ac_cv_c_bigendian-$ac_cv_sizeof_void_p" in + yes-8) SCM_PREBUILT_BINARIES=64-bit-big-endian;; + yes-4) SCM_PREBUILT_BINARIES=32-bit-big-endian;; + no-8) SCM_PREBUILT_BINARIES=64-bit-little-endian;; + no-4) SCM_PREBUILT_BINARIES=32-bit-little-endian;; + *) AC_MSG_ERROR([Unexpected endianness+pointer size combination.]) +esac +AC_MSG_RESULT($SCM_PREBUILT_BINARIES) +AC_SUBST([SCM_PREBUILT_BINARIES]) + AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_SYS_WAIT diff --git a/meta/build-env.in b/meta/build-env.in index b271d0bc8..27e604366 100644 --- a/meta/build-env.in +++ b/meta/build-env.in @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2003, 2006, 2008-2012, 2016 Free Software Foundation +# Copyright (C) 2003, 2006, 2008-2012, 2016, 2017 Free Software Foundation # # This file is part of GNU Guile. # @@ -54,7 +54,7 @@ then GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline" fi export GUILE_LOAD_PATH - GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/bootstrap:${top_srcdir}/prebuilt/@host@:${top_builddir}/guile-readline" + GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/bootstrap:${top_srcdir}/prebuilt/@SCM_PREBUILT_BINARIES@:${top_builddir}/guile-readline" export GUILE_LOAD_COMPILED_PATH # Don't look in installed dirs for guile modules diff --git a/meta/uninstalled-env.in b/meta/uninstalled-env.in index ff32902d0..ed932d0cb 100644 --- a/meta/uninstalled-env.in +++ b/meta/uninstalled-env.in @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2003, 2006, 2008, 2009, 2010, 2011, 2012, 2015 Free Software Foundation +# Copyright (C) 2003, 2006, 2008, 2009, 2010, 2011, 2012, 2015, 2017 Free Software Foundation # # This file is part of GUILE. # @@ -80,7 +80,7 @@ then fi export GUILE_LOAD_PATH - for d in "/prebuilt/@host@" "/bootstrap" "/module" "/guile-readline" + for d in "/prebuilt/@SCM_PREBUILT_BINARIES@" "/bootstrap" "/module" "/guile-readline" do # This hair prevents double inclusion. # The ":" prevents prefix aliasing. diff --git a/prebuilt/32-bit-big-endian b/prebuilt/32-bit-big-endian new file mode 120000 index 000000000..3b619a6a1 --- /dev/null +++ b/prebuilt/32-bit-big-endian @@ -0,0 +1 @@ +mips-unknown-linux-gnu \ No newline at end of file diff --git a/prebuilt/32-bit-little-endian b/prebuilt/32-bit-little-endian new file mode 120000 index 000000000..63f12a0b3 --- /dev/null +++ b/prebuilt/32-bit-little-endian @@ -0,0 +1 @@ +i686-pc-linux-gnu \ No newline at end of file diff --git a/prebuilt/64-bit-little-endian b/prebuilt/64-bit-little-endian new file mode 120000 index 000000000..8dd176f8b --- /dev/null +++ b/prebuilt/64-bit-little-endian @@ -0,0 +1 @@ +x86_64-unknown-linux-gnu \ No newline at end of file diff --git a/prebuilt/x86_64-pc-linux-gnu b/prebuilt/x86_64-pc-linux-gnu deleted file mode 120000 index 7ef2cbd31..000000000 --- a/prebuilt/x86_64-pc-linux-gnu +++ /dev/null @@ -1 +0,0 @@ -./x86_64-unknown-linux-gnu \ No newline at end of file