[SOLVED] Illegal Instruction on user machines

WOW! a real live “illegal instruction”. I was curious about whether the OS would restrict against certain instructions and wanted to understand how this could happen!

1 Like

If you don’t pass the -march option, gcc will default to a value that was chosen when building gcc. You can check what this value is by running:

echo "" | grep -v -E - 2>&1 | grep GCC_OPTIONS

On my Ubuntu 18.04 machine, this returns:

COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic' '-march=x86-64'

If you get the same thing, you shouldn’t have to select anything in Projucer (but None).

Are you sure that’s the correct command? It doesn’t do anything for me.

Sorry, I made a typo. It doesn’t even call gcc :sweat_smile:

The correct command is:

 echo "" | gcc -v -E - 2>&1 | grep GCC_OPTIONS

Here is what I get on Azure:

COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic' '-march=x86-64'
COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic' '-march=x86-64'

And here is what I get on my build machine:

COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic' '-march=x86-64'
COLLECT_GCC_OPTIONS='-v' '-E' '-mtune=generic' '-march=x86-64'

Exact same. Not sure why the Azure builds won’t run on my machine.

Are you sure there is no -march option left in the Makefile?