https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91971
Bug ID: 91971 Summary: Profile directory concatenated with object file path Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: gcov-profile Assignee: unassigned at gcc dot gnu.org Reporter: qinzhao at gcc dot gnu.org CC: marxin at gcc dot gnu.org Target Milestone: --- we noticed that the profile directory will be concatenated with object file path. the following small example explain this behavior: [qinzhao@localhost small]$ cat t #! /bin/bash CC=/home/qinzhao/Install/latest/bin/gcc opt="-O3 -fprofile-generate" opt="$opt -fprofile-dir=/home/qinzhao/prof_dir" opt="$opt -c -o /home/qinzhao/obj_dir/t.o" tf="t.c" echo $CC $opt $tf $CC $opt $tf strings /home/qinzhao/obj_dir/t.o | grep prof_dir [qinzhao@localhost small]$ sh t /home/qinzhao/Install/latest/bin/gcc -O3 -fprofile-generate -fprofile-dir=/home/qinzhao/prof_dir -c -o /home/qinzhao/obj_dir/t.o t.c /home/qinzhao/prof_dir//home/qinzhao/obj_dir/t.gcda [qinzhao@localhost small]$ From the above, we can see: when specifying the profiling directory with -fprofile-dir as “/home/qinzhao/prof_dir”, the user expects that the profiling data will be stored in this specific directory. However, GCC concatenates the profiling directory “/home/qinzhao/prof_dir” with the path for the object file “/home/qinzhao/obj_dir” together. As a result, the profiling data will be stored to: /home/qinzhao/prof_dir/home/qinzhao/obj_dir/ instead of /home/qinzhao/prof_dir This looks like a bug to me.