https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66457
--- Comment #3 from Dangyi Liu <leedypku at gmail dot com> --- This still happens on Linux. $ echo 'int main(){}' | ./i386-jos-elf-gcc -pg -m32 -S -x c -o - - main: pushl %ebp movl %esp, %ebp .LP0: movl $.LP0,%edx call _mcount popl %ebp .LCFI2: ret .ident "GCC: (GNU) 4.8.4" $ ./i386-jos-elf-gcc -v Using built-in specs. COLLECT_GCC=./i386-jos-elf-gcc COLLECT_LTO_WRAPPER=/home/leedy/gcc-4.8.4/bin/libexec/gcc/i386-jos-elf/4.8.4/lto-wrapper Target: i386-jos-elf Configured with: ../configure --prefix=/home/leedy/gcc-4.8.4/bin --target=i386-jos-elf --disable-werror --disable-libssp --disable-libmudflap --disable-multilib --disable-nls --without-headers --enable-languages=c Thread model: single gcc version 4.8.4 (GCC) Did I do something wrong during with the configuration?