Description of problem: gcc rejects x86_64 as a value for -march, but arch (and friends) all return that string Version-Release number of selected component (if applicable): gcc-4.0.2-8.fc4 How reproducible: always Steps to Reproduce: 1.echo 'foo' | gcc -E - -march=x86_64 2. 3. Actual results: # 1 "<stdin>" :0: error: bad value (x86_64) for -march= switch :0: error: bad value (x86_64) for -mtune= switch Expected results: # 1 "<stdin>" # 1 "<built-in>" # 1 "<command line>" # 1 "<stdin>" foo Additional info: arch outputs x86_64, as do the config.guess scripts supplied with such packages as rpm. rpm packages are all named *.x86_64.* gcc does accept x86-64, but this is not documented (and different from the other programmes) This breaks some configure scripts...
Configure scripts that do this are helplessly broken. There is no such CPU as x86_64, you either don't need to use -march= at all and just use -m64 to generate 64-bit code, or you should choose some real CPU (opteron, athlon64, nocona, k8, athlon-fx). -march=x86-64 is supported too as a generic 64-bit CPU, but that's the name of the arch, x86_64 is just mangled name of the arch so that it can be used in config triplets that don't allow hyphen in the arch name.