Bug#760450: libc6-prof is unusable
Package: libc6-prof
Version: 2.19-10
Severity: grave
The library from libc6-prof package is unusable.
I'm compiling the simple example program:
int main(void)
{
return sleep(3);
}
If I follow directly the suggestion from the README.Debian, I get the
following error:
$ gcc -g -pg test.c -static-libgcc -lc_p
/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality
in
`/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libc_p.a(strcmp.op)'
can not be used when making an executable; recompile with -fPIE and
relink with -pie
collect2: error: ld returned 1 exit status
I was able to make executable using one of the following compile lines:
$ gcc -g -pg test.c -nodefaultlibs -lc_p -lgcc_eh -lc_p
or
$ gcc -g -pg test.c -nodefaultlibs -Wl,--start-group -lc_p -lgcc_eh
-Wl,--end-group
However the resulting executable segfaults:
$ ./a.out
Segmentation fault
$ valgrind --quiet ./a.out
==1440== Invalid read of size 4
==1440== at 0x459DBB: __mcount_internal (in /tmp/tt/t/a.out)
==1440== by 0x4347D3: mcount (in /tmp/tt/t/a.out)
==1440== by 0x400F48: ??? (in /tmp/tt/t/a.out)
==1440== by 0xFFF000387: ???
==1440== Address 0x18 is not stack'd, malloc'd or (recently) free'd
==1440==
==1440==
==1440== Process terminating with default action of signal 11 (SIGSEGV)
==1440== Access not within mapped region at address 0x18
==1440== at 0x459DBB: __mcount_internal (in /tmp/tt/t/a.out)
==1440== by 0x4347D3: mcount (in /tmp/tt/t/a.out)
==1440== by 0x400F48: ??? (in /tmp/tt/t/a.out)
==1440== by 0xFFF000387: ???
==1440== If you believe this happened as a result of a stack
==1440== overflow in your program's main thread (unlikely but
==1440== possible), you can try to increase the size of the
==1440== main thread stack using the --main-stacksize= flag.
==1440== The main thread stack size used in this run was 8388608.
Segmentation fault
-- System Information:
Debian Release: jessie/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.14-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libc6-prof depends on:
ii libc6 2.19-10
libc6-prof recommends no packages.
libc6-prof suggests no packages.
-- no debconf information
Reply to: