On Mon, Jan 12, 2015 at 03:04:20PM -0700, Jeff Law wrote: > On 01/12/15 14:51, Magnus Granberg wrote: > >måndag 12 januari 2015 12.11.17 skrev H.J. Lu: > >>On Mon, Jan 12, 2015 at 12:03 PM, Jeff Law <l...@redhat.com> wrote: > >>>On 01/12/15 12:59, H.J. Lu wrote: > >>>>I don't know if -pg will work PIE on any targets. For Linux/x86 > >>>>the choices of crt1.o are > >>>> > >>>>%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} > >>>> > >>>>-shared, -pg and -pie are mutually exclusive. Those crt1 files are > >>>>only crt1 files provided by glibc. You can't even try -pg -pie on > >>>>Linux without changing glibc. > >>> > >>>You're totally missing the point. What I care about is *why*. > >>> > >With -pg it use gcrt1.o object file and that file is not compile with -fPIC. > >When you build a shared lib on x86_64 all the objects files need to be buiit > >with -fPIC else you get a error like that one abow and it is the same > >problems > >when you build bin with -fPIE and linke with -pie. > >Glibc do not provide one that is compile with -fPIC > Is there some reason why glibc could not provide gcrt1.o compiled with > -fPIC? >
I opened a glibc bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17836 and submitted a patch: https://sourceware.org/ml/libc-alpha/2015-01/msg00284.html H.J.