Subject: Re: configure fails when cross-compiling for the same architecture

From: Paul Eggert <[email-masked]>
Date: Wed, 13 Dec 2017 11:44:19 -0800

[Sending again, as my earlier message was CC'ed to the wrong bug number.]

On 12/08/2017 04:10 PM, Pip Cet wrote:
 > I tried building Paul's MPX patch on a CPU that doesn't support MPX,
 > so I could run the executable with Intel's CPU emulator. I used
 > ./configure CFLAGS="-O2 -g3 -mmpx -fcheck-pointer-bounds", but that
 > failed because the executable produced by the tputs test cannot run
 > (natively) on my CPU.

That's odd, since MPX instructions are supposed to be no-ops on non-MPX 
CPUs. "./configure CC='gcc -mmpx -fcheck-pointer-bounds' && make" works 
fine on Emacs master when I build it on my old non-MPX desktop running 
Fedora 27 x86-64. This is an AMD Phenom II X4 910e processor (circa 2010).

 > It would be nice to have a configure option to specify that while
 > build and target machines share the same architecture, they don't
 > share the same -m flags, so that we're effectively cross-compiling. Is
 > this possible with autoconf?

I would think that a cross-compiler-enabled configure script would work 
easily with that, as it shouldn't care how closely related the build and 
target machines are. However, the Emacs build procedure isn't designed 
to work in cross-compilation builds so I'm afraid that if you want to 
cross-compile you'll need to do it by hand (admittedly a daunting prospect).