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.

Reply via email to