SDL recently added atomic functions. I've been building gcc's for 20 years and suddenly I can't seemlessly handle this (though my ubuntu native compilers can) without -march=native I tried to configure my gcc as similar to the ubuntu gcc's -- but The program looks like this: I wasn't able to find anything on the web to deal with this (except a hint in libg++ to use -march=native : leisner@gateway 03:09:59;nl foo.c 1 int i = 0; 2 int SDL_AtomicIncrementThenFetch32(volatile int * ptr) 3 { 4 return __sync_add_and_fetch(ptr, 1); 5 } 6 main() 7 { 8 SDL_AtomicIncrementThenFetch32(&i); 9 return i; 10 } %gcc foo.c -o foo /tmp/cc2mf0HU.o: In function `SDL_AtomicIncrementThenFetch32': foo.c:(.text+0xf): undefined reference to `__sync_add_and_fetch_4' collect2: ld returned 1 exit status %/usr/bin/gcc foo.c -o foo % I built gcc a number of times with different gyrations of configuration without being able to do away with -march=native (I also upgrade my gcc, I was using 4.4.1, I went to 4.4.3) Here's my gcc -v: %gcc -v Using built-in specs. Target: i486-linux-gnu Configured with: /usr/local/src/gnu/gcc-4.4.3/configure --prefix=/usr/gnu/gcc-4.4.3 --enable-languages=c,c++ --enable-threads=posix --disable-nls --enable-mpfr --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.4.3 (GCC) %/usr/bin/gcc -v Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu Thread model: posix gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)