Move test for 64-bit kernel with 32-bit userland to configure.
authorGlenn Morris <rgm@gnu.org>
Wed, 28 Apr 2010 06:43:38 +0000 (23:43 -0700)
committerGlenn Morris <rgm@gnu.org>
Wed, 28 Apr 2010 06:43:38 +0000 (23:43 -0700)
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.

ChangeLog
configure.in
src/m/amdx86-64.h

index 11a934e..ddd52e9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index 281d069..6233b7f 100644 (file)
@@ -761,6 +761,20 @@ AC_PROG_INSTALL
 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)
index f7dfb12..b2e6cae 100644 (file)
@@ -17,15 +17,6 @@ GNU General Public License for more details.
 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 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #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) */