Subject: 24.1; Build failure on amd64 with x32 ABI

From: Ulrich Mueller <[email-masked]>
Date: Sun, 10 Jun 2012 21:42:20 +0200

Forwarding downstream bug: <https://bugs.gentoo.org/show_bug.cgi?id=420257>

Emacs 24.1 fails to build on an amd64 system with x32 ABI [1][2].
During compilation, about 20000 warnings like:

   warning: left shift count >= width of type [enabled by default]
   warning: right shift count >= width of type [enabled by default]

occur, and finally the build process aborts with a segmentation fault:

   if test "no" = "yes"; then \
     ln -f temacs bootstrap-emacs; \
   else \
     `/bin/pwd`/temacs --batch --load loadup bootstrap || exit 1; \
     test "X" = X ||  -zex emacs; \
     mv -f emacs bootstrap-emacs; \
   fi
   /bin/sh: line 6: 27446 Segmentation fault      `/bin/pwd`/temacs --batch --load loadup bootstrap
   make[1]: *** [bootstrap-emacs] Error 1
   make[1]: Leaving directory `/var/tmp/portage/app-editors/emacs-24.1/work/emacs-24.1/src'
   make: *** [src] Error 2

See [3] for the full build log.

I've attached a one line patch that fixes the problem for me.
AFAICS, Emacs from BZR is not affected.

(Sorry about the bad timing, but x32 support in Gentoo is just
available since a few days.)

[1] https://lwn.net/Articles/500482/
[2] https://sites.google.com/site/x32abi/
[3] http://dev.gentoo.org/~ulm/emacs-24.1-build.log
--- emacs-24.1-orig/configure.in
+++ emacs-24.1/configure.in
@@ -749,6 +749,7 @@
     machine=intel386
     machfile="m/${machine}.h"
   fi
+  AC_CHECK_DECL([__ILP32__], [machfile="m/intel386.h"])
 fi
 
 AC_PATH_PROG(INSTALL_INFO, install-info)