# HG changeset patch # User Glenn Morris # Date 1272437018 25200 # Node ID 947dd776616f869f4f3b2b50830f7608c9b4cd7e # Parent c46b2d0614cb790ce656b085569b60abd74d5bb2 Move test for 64-bit kernel with 32-bit userland to configure. See discussion in bug#5655. * configure.in (machine, canonical): On amdx86-64, check for a 32-bit userland and maybe change values to i386 (move test from s/amdx86-64.h). * src/m/amdx86-64.h [i386]: Move this test to configure.in. diff -r c46b2d0614cb -r 947dd776616f ChangeLog --- a/ChangeLog Tue Apr 27 14:14:16 2010 -0400 +++ b/ChangeLog Tue Apr 27 23:43:38 2010 -0700 @@ -1,3 +1,8 @@ +2010-04-28 Glenn Morris + + * configure.in (machine, canonical): On amdx86-64, check for a 32-bit + userland and maybe change values to i386 (move test from s/amdx86-64.h). + 2010-04-27 Glenn Morris * configure.in (LIBXTR6): New output variable. Move unixware special diff -r c46b2d0614cb -r 947dd776616f configure.in --- a/configure.in Tue Apr 27 14:14:16 2010 -0400 +++ b/configure.in Tue Apr 27 23:43:38 2010 -0700 @@ -761,6 +761,20 @@ if test "x$RANLIB" = x; then AC_PROG_RANLIB fi + +## Although we're running on an amd64 kernel, we're actually compiling for +## the x86 architecture. The user should probably have provided an +## explicit --build to `configure', but if everything else than the kernel +## is running in i386 mode, we can help them out. +if test "$machine" = "amdx86-64"; then + AC_CHECK_DECL([i386]) + if test "$ac_cv_have_decl_i386" = "yes"; then + canonical=`echo "$canonical" | sed -e 's/^amd64/i386/' -e 's/^x86_64/i386/'` + machine=intel386 + machfile="m/${machine}.h" + fi +fi + AC_PATH_PROG(INSTALL_INFO, install-info) AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin) AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin) diff -r c46b2d0614cb -r 947dd776616f src/m/amdx86-64.h --- a/src/m/amdx86-64.h Tue Apr 27 14:14:16 2010 -0400 +++ b/src/m/amdx86-64.h Tue Apr 27 23:43:38 2010 -0700 @@ -17,15 +17,6 @@ You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see . */ -#ifdef i386 -/* Although we're running on an amd64 kernel, we're actually compiling for - the x86 architecture. The user should probably have provided an - explicit --build to `configure', but if everything else than the kernel - is running in i386 mode, then the bug is really ours: we should have - guessed better. */ -#include "m/intel386.h" -#else - /* The following line tells the configuration script what sort of operating system this machine is likely to run. USUAL-OPSYS="linux" */ @@ -90,7 +81,6 @@ #define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o #endif /* SOLARIS2 */ -#endif /* !i386 */ /* arch-tag: 8a5e001d-e12e-4692-a3a6-0b15ba271c6e (do not change this comment) */