<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 3, 2018 at 12:40 PM Bruce Dubbs <<a href="mailto:bruce.dubbs@gmail.com">bruce.dubbs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 06/29/2018 07:32 PM, Don Cross wrote:<br>
> I wasn't sure whether to send this to lfs-support or lfs-dev. Since I'm <br>
> not a developer on LFS, I guessed the former. Apologies if my guess is <br>
> unhelpful.<br>
> <br>
> I built LFS using jhalfs and the 8.2 version of the book on a machine <br>
> with an Intel G860 processor. The configure script for libffi guessed <br>
> wrong about the processor's capabilities, causing Python 3 to crash with <br>
> an invalid instruction exception.<br>
> <br>
> I fixed this by changing the jhalfs script 115_libffi to let gcc <br>
> determine the architecture rather than the configure script itself:<br>
> <br>
> ./configure --prefix=/usr --disable-static --with-gcc-arch=native<br>
<br>
In the libffi source directory, can you pelease tell us what the output <br>
of ./config.guess<br>
<br>
In my case it is x86_64-unknown-linux-gnu.<br>
<br>
   -- Bruce<br></blockquote><div><br></div><div>Hi Bruce, I see the same thing:</div><div><br></div><div><div>don@neptune:/sources/libffi-3.2.1 $ ./config.guess</div><div>x86_64-unknown-linux-gnu</div></div><div><br></div><div>However, I believe the smoking gun is in the output of ./configure when I leave out the --with-gcc-arch=native.  If I diff the output of ./configure without that native option (bad.txt) against the output with that option (good.txt) I get:</div><div><br></div><div>don@neptune:/sources/libffi-3.2.1 $ ./configure --prefix=/usr --disable-static > bad.txt<br></div><div><div>don@neptune:/sources/libffi-3.2.1 $ ./configure --prefix=/usr --disable-static --with-gcc-arch=native > good.txt</div></div><div><div>don@neptune:/sources/libffi-3.2.1 $ diff bad.txt good.txt</div><div>106,110c106,108</div><div>< checking for x86 cpuid 0 output... d:756e6547:6c65746e:49656e69</div><div>< checking for x86 cpuid 1 output... 206a7:2100800:d9ae3bf:bfebfbff</div><div>< checking whether C compiler accepts -march=corei7-avx... yes</div><div>< checking for gcc architecture flag... -march=corei7-avx</div><div>< checking whether C compiler accepts -O3 -fomit-frame-pointer -fstrict-aliasing -ffast-math -march=corei7-avx... yes</div><div>---</div><div>> checking whether C compiler accepts -march=native... yes</div><div>> checking for gcc architecture flag... -march=native</div><div>> checking whether C compiler accepts -O3 -fomit-frame-pointer -fstrict-aliasing -ffast-math -march=native... yes</div></div><div><br></div><div>I'm not sure how ./configure comes up with corei7-avx, but the Intel G860 does not support Advanced Vector eXtension instructions.</div><div><br></div><div>I think --with-gcc-arch=native is going to give the vast number of LFS builders the correct output. If they are cross-compiling, they are going to have to go through the pain of figuring out the target architecture settings anyway, so they will be no worse off.</div><div><br></div><div>Don</div></div></div>