This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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  <toma.tabacu@imgtec.com>

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

gcc/testsuite/ChangeLog:

	Backported from mainline
	2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>

	* 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 &operator[] (long); };
 template <typename> struct B;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]