http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54419
--- Comment #26 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-09-04 16:37:07 UTC --- (In reply to comment #23) > Why do you talk about clang? This has nothing to do with it. And, there is > already runtime check for whether RDRAND can be used in random.cc (though, > apparently insufficient for i?86 - it should use either __get_cpuid, or > __get_cpuid_max before __cpuid). Not sure if on x86_64 it is guaranteed that > max basic level is always >= 1, if not, it also needs to test __get_cpuid_max. I mention clang because it is the system compiler on both Lion and Mountain Lion as of Xcode 4.4. The Apple clang 4.0 compiler defaults to its integrated assembler such that the simple test case... int main () { asm("rdrand %eax"); return 0; } is compiled without errors into the assembly.... .section __TEXT,__text,regular,pure_instructions .globl _main .align 4, 0x90 _main: ## @main .cfi_startproc ## BB#0: pushq %rbp Ltmp2: .cfi_def_cfa_offset 16 Ltmp3: .cfi_offset %rbp, -16 movq %rsp, %rbp Ltmp4: .cfi_def_cfa_register %rbp movl $0, %eax movl $0, -4(%rbp) ## InlineAsm Start rdrand %eax ## InlineAsm End popq %rbp ret .cfi_endproc .subsections_via_symbols This leaves config.log with ac_cv_x86_rdrand=yes which fails later in the bootstrap when the newly built FSF gcc compiler is used and the legacy system assembler is used.