RE: [PATCH,testsuite] Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

2017-06-06 Thread Toma Tabacu
Thanks, Rainer.
Committed as r248916.

Thanks for suggesting a backport, Renlin.

Regards,
Toma



Re: [PATCH,testsuite] Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

2017-06-06 Thread Rainer Orth
Hi Toma,

>> Thanks for fixing this! Do you have plan to backport the fix to gcc-6 branch?
>
> I am happy to backport it.
> I've rebased the patch on top of the gcc-6 branch and attached it below.
>
> Rainer, is this OK for gcc-6?

sure, thanks.

Rainer


> gcc/ChangeLog:
>
>   Backported from mainline
>   2017-03-09  Toma Tabacu  
>
>   * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
>   Document rdynamic.
>
> gcc/testsuite/ChangeLog:
>
>   Backported from mainline
>   2017-03-09  Toma Tabacu  
>
>   * g++.dg/lto/pr69589_0.C: Add dg-require-effective-target for
>   rdynamic.
>   * lib/target-supports.exp (check_effective_target_rdynamic):
>   New proc.

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


RE: [PATCH,testsuite] Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

2017-06-05 Thread Toma Tabacu
Hi Renlin,

> 
> Thanks for fixing this! Do you have plan to backport the fix to gcc-6 branch?
> 

I am happy to backport it.
I've rebased the patch on top of the gcc-6 branch and attached it below.

Rainer, is this OK for gcc-6?

Regards,
Toma Tabacu

gcc/ChangeLog:

Backported from mainline
2017-03-09  Toma Tabacu  

* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
Document rdynamic.

gcc/testsuite/ChangeLog:

Backported from mainline
2017-03-09  Toma Tabacu  

* g++.dg/lto/pr69589_0.C: Add dg-require-effective-target for
rdynamic.
* lib/target-supports.exp (check_effective_target_rdynamic):
New proc.

Index: gcc/doc/sourcebuild.texi
===
--- gcc/doc/sourcebuild.texi(revision 248876)
+++ gcc/doc/sourcebuild.texi(working copy)
@@ -1950,6 +1950,9 @@
 @item pie
 Target supports @option{-pie}, @option{-fpie} and @option{-fPIE}.
 
+@item rdynamic
+Target supports @option{-rdynamic}.
+
 @item section_anchors
 Target supports section anchors.
 
Index: gcc/testsuite/lib/target-supports.exp
===
--- gcc/testsuite/lib/target-supports.exp   (revision 248876)
+++ gcc/testsuite/lib/target-supports.exp   (working copy)
@@ -1424,6 +1424,14 @@
 } "-static"]
 }
 
+# Return 1 if we can use the -rdynamic option, 0 otherwise.
+
+proc check_effective_target_rdynamic { } {
+  return [check_no_compiler_messages rdynamic executable {
+ int main() { return 0; }
+  } "-rdynamic"]
+}
+
 # Return 1 if cilk-plus is supported by the target, 0 otherwise.
  
 proc check_effective_target_cilkplus { } {
Index: gcc/testsuite/g++.dg/lto/pr69589_0.C
===
--- gcc/testsuite/g++.dg/lto/pr69589_0.C(revision 248876)
+++ gcc/testsuite/g++.dg/lto/pr69589_0.C(working copy)
@@ -1,6 +1,7 @@
 // { dg-lto-do link }
 // { dg-lto-options "-O2 -rdynamic" } 
 // { dg-extra-ld-options "-r -nostdlib" }
+// { dg-require-effective-target rdynamic }
 #pragma GCC visibility push(hidden)
 struct A { int [] (long); };
 template  struct B;



Re: [PATCH,testsuite] Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

2017-06-02 Thread Renlin Li

Hi Toma,

Thanks for fixing this! Do you have plan to backport the fix to gcc-6 branch?


Regards,
Renlin

On 09/03/17 15:08, Toma Tabacu wrote:


Ok for mainline with that fixed.

Thanks.
 Rainer



Committed as r246004.

Thanks,
Toma



RE: [PATCH,testsuite] Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

2017-03-09 Thread Toma Tabacu
> 
> Ok for mainline with that fixed.
> 
> Thanks.
> Rainer
> 

Committed as r246004.

Thanks,
Toma



RE: [PATCH,testsuite] Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

2017-03-09 Thread Matthew Fortune
Rainer Orth  writes:
> > g++.dg/lto/pr69589_0.C is currently failing for mips-mti-elf with the
> following error:
> >
> > xg++: error: unrecognized command line option '-rdynamic'
> >
> > However, it passes just fine for mips-mti-linux-gnu.
> > I think that we should skip this test for mips-mti-elf.
> 
> could it be that mips/sde.h is just missing -rdynamic handling in
> LINK_SPEC?  At least some bare-metal targets using gld *do* support -
> rdynamic (cf. xtensa/elf.h and aarch64/aarch64-elf-raw.h)...

There's probably no harm in adding it in to mips/sde.h it just doesn't
really add much value either. We have some (very subtle) ABI differences
between ELF and Linux targets so I'm not sure it is worth trying to
make sure all options exist/behave the same given such differences.

Matthew


Re: [PATCH,testsuite] Add check_effective_target_rdynamic and use it in g++.dg/lto/pr69589_0.C.

2017-03-08 Thread Rainer Orth
Hi Toma,

> g++.dg/lto/pr69589_0.C is currently failing for mips-mti-elf with the 
> following error:
>
> xg++: error: unrecognized command line option '-rdynamic'
>
> However, it passes just fine for mips-mti-linux-gnu.
> I think that we should skip this test for mips-mti-elf.

could it be that mips/sde.h is just missing -rdynamic handling in
LINK_SPEC?  At least some bare-metal targets using gld *do* support
-rdynamic (cf. xtensa/elf.h and aarch64/aarch64-elf-raw.h)...

That said, I like the general direction of this patch, even when the new
keyword is only used in one place.

> This patch achieves this by adding support for check_effective_target_rdynamic
> and then using it in g++.dg/lto/pr69589_0.C.
>
> This patch also removes the existing dg-skip-if, as it is made redundant by 
> the
> effective target check. The latter is also more convenient, as we won't have 
> to
> keep tweaking the dg-skip-if for failing targets anymore.
>
> This is similar to my recent check_effective_target_gettimeofday patch,
> which was greatly improved by Rainer Orth's review.
>
> Tested with mips-mti-elf and mips-mti-linux-gnu.
>
> Does this look good ?
[...]
> diff --git a/gcc/testsuite/lib/target-supports.exp 
> b/gcc/testsuite/lib/target-supports.exp
> index 2766af4..f46f0ba 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -1484,6 +1484,16 @@ proc check_effective_target_static_libgfortran { } {
>  } "-static"]
>  }
>  
> +# Return 1 if we can use the -rdynamic option, 0 otherwise.
> +#
> +# When the target name changes, replace the cached result.

I think this line isn't necessary.  Just keep the first.

Ok for mainline with that fixed.

Thanks.
Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University