On Mon, Sep 04, 2017 at 12:39:02PM -0700, Grant wrote
> 
> Now I'm running into "trap invalid opcode" errors on the older
> systems.  Can I disable some of the newer CPU instruction sets on the
> master laptop when compiling to hopefully generate binaries that will
> work on the older systems?

  Yes.  You need to find out CPU_FLAGS_X86 and "-march=" values the
machines have, and use that in make.conf.  Run the commands...

cpuinfo2cpuflags-x86
gcc -c -Q -march=native --help=target | grep march=

...on the target machines.  This will tell you what "native" is and
what CPU_FLAGS_X86 values to use.

https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/x86-Options.html#x86-Options
lists available "march=" options, and what instruction sets they support.
E.g. my old core2 desktop shows...

[d531][waltdnes][~] cpuinfo2cpuflags-x86
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3"

[d531][waltdnes][~] gcc -c -Q -march=native --help=target | grep march=
  -march=                               core2


  Unless the laptops are really old, you can probably get away with...
CFLAGS="-O2 march=core2 -mfpmath=sse -fopenmp -fomit-frame-pointer -pipe 
-fno-unwind-tables -fno-asynchronous-unwind-tables"

booby trap 1) Unless all machines are Intel "Atom" family, do *NOT* use
a "march=" that implements the "movbe" instruction.

booby trap 2) If you throw in any AMD-based machines proceed with care.

  Can you post the output of...
gcc -c -Q -march=native --help=target | grep march=
...for all the target machines?

-- 
Walter Dnes <[email protected]>
I don't run "desktop environments"; I run useful applications

Reply via email to