-march=native tells the compiler to call cpuid() to get a list of the current CPU's features/flags/l1/2l/l3 size and optimize for that specific processor. Indeed, the code isn't portable, and is a huge drawback of RPM based languages like PHP, perl, etc is they are generally passed with -O2/-O0...