[Bug c/66457] New: gcc generates an extra "mov ??, %edx" before "call mcount" when "-pg" is enabled in cross compilation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66457 Bug ID: 66457 Summary: gcc generates an extra "mov ??, %edx" before "call mcount" when "-pg" is enabled in cross compilation Product: gcc Version: 4.9.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: leedypku at gmail dot com Target Milestone: --- # On Darwin, with cross compilation, some code omitted $ echo 'int main(){}' | i386-jos-elf-gcc -pg -m32 -S -x c -o - - main: pushl %ebp movl%esp, %ebp .LP0: movl$.LP0,%edx # this line call_mcount popl%ebp ret .ident "GCC: (GNU) 4.9.2" # On Linux, some code omitted $ echo 'int main(){}' | gcc -pg -S -m32 -x c -o - - main: pushl %ebp movl%esp, %ebp callmcount popl%ebp ret .ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2" 1. It happens only in cross compilation. 2. The target is i386-jos-elf and the host is Darwin. 3. I've tested with GCC version 4.6.1, 4.6.4 and 4.9.2. 4. How can I disable it?
[Bug target/66457] gcc generates an extra "mov ??, %edx" before "call mcount" when "-pg" is enabled in cross compilation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66457 --- Comment #2 from Dangyi Liu --- (In reply to Andrew Pinski from comment #1) > Which compiler are you using to compile the cross compiler on Darwin? I > can't tell if you have tried a cross compiler to elf under linux either, > only the native one. I compiled the cross compiler using clang. Now I'm trying to reproduce this bug under Linux.
[Bug target/66457] gcc generates an extra "mov ??, %edx" before "call mcount" when "-pg" is enabled in cross compilation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66457 --- Comment #3 from Dangyi Liu --- 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?
[Bug target/66457] gcc generates an extra "mov ??, %edx" before "call mcount" when "-pg" is enabled in cross compilation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66457 --- Comment #6 from Dangyi Liu --- (In reply to Andrew Pinski from comment #4) > Yes you don't define NO_PROFILE_COUNTERS . That is the default i386-elf > target defaults to NO_PROFILE_COUNTERS not being defined. Thank you very much!!! But I don't know how to define this macro during building phase, and I can't find any useful information using Google. Could you help me ?