http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59492
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- [hjl@gnu-6 gcc]$ cat /tmp/x.cc void __throw_runtime_error(const char*) __attribute__((__noreturn__)); unsigned int __attribute__ ((target("rdrnd"))) __x86_rdrand(void) { unsigned int retries = 100; unsigned int val; while (__builtin_ia32_rdrand32_step(&val) == 0) if (--retries == 0) __throw_runtime_error(("random_device::__x86_rdrand(void)")); return val; } [hjl@gnu-6 gcc]$ ./xgcc -B./ -c -g -mx32 /tmp/x.cc -std=gnu++11 -fPIC /tmp/ccTJs5Yu.s: Assembler messages: /tmp/ccTJs5Yu.s: Error: cannot represent relocation type BFD_RELOC_64_PCREL in x32 mode /tmp/ccTJs5Yu.s: Error: cannot represent relocation type BFD_RELOC_64_PCREL in x32 mode [hjl@gnu-6 gcc]$