Asterisk CPU instructions set requirements


#1

Hello everyone,

I have two servers running on Intel’s Xeon E5345 and Xeon X5675 processors. Asterisk 11.23.0 works fine on both of them. But Asterisk 11.25.1 fails to start on older E5345 machine with Illegal instruction (core dumped) error message. On X5675 Asterisk 11.25.1 works as expected.

So I was wondering if there is a place where I could find Asterisk requirements for CPU instructions sets listed somewhere to know if that server can still run newer Asterisks or not?

Thanks a lot!


#2

This will depend on how Asterisk was compiled. E.g. Asterisk will run on the ARM instruction set variant used by the Rspberry Pi, but a version compiled for Intel 32 bit machines won’t. How did you create or obtain the binary?

If you compiled it yourself, please note hat some virtual machine environments mis-declare the processor capabilities, so code compiled on the same machine may fail… There are compiler options that ensure that more generic code is produced. These have been mentioned here, but I forget the details. Are you trying to run on a VM?


#3

Disabling the BUILD_NATIVE option in “make menuselect” under “Compiler Flags - Development” is what you’re thinking of. That produces a build which doesn’t use the very specific instructions for the CPU of the system it is built on.


#4

Thanks for advices. Asterisk was installed from package prepared on different machine. So most likely it will work after compilling and installing directly on problematic machine.

Thanks a lot!