On Tue, Jan 13, 2015 at 04:54:32AM -0800, H.J. Lu wrote: > 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? > > > > > > Here is a patch to check if -pg is available. If -pg doesn't link, > profiling isn't available. OK for trunk? > > Thanks. > > > H.J. > --- > gcc/testsuite/lib/target-supports.exp | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index 0ac9646..7c09399 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -546,6 +546,12 @@ proc check_profiling_available { test_what } { > set profiling_available_saved 0 > } else { > set profiling_available_saved 1 > + if { [check_no_compiler_messages_nocache profiling executable { > + int main() { return 0; } } "-pg"] } { > + set profiling_available_saved 1 > + } else { > + set profiling_available_saved 0 > + } > } > } >
Here is the ChangeLog entry. 2015-01-13 H.J. Lu <hongjiu...@intel.com> * lib/target-supports.exp (check_profiling_available): Check if -pg links. H.J.