changeset 108145:947dd776616f

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.
author Glenn Morris <rgm@gnu.org>
date Tue, 27 Apr 2010 23:43:38 -0700
parents c46b2d0614cb
children b810c933481f
files ChangeLog configure.in src/m/amdx86-64.h
diffstat 3 files changed, 19 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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  <rgm@gnu.org>
+
+	* 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  <rgm@gnu.org>
 
 	* configure.in (LIBXTR6): New output variable.  Move unixware special
--- 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)
--- 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 <http://www.gnu.org/licenses/>.  */
 
-#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) */