Testsuite: GCN is always PIE.

The GCN/HSA loader ignores the load address and uses a random location, so we
build all GCN binaries as PIE, by default.

This patch makes the necessary testsuite adjustments to make this work
correctly.

2019-01-17  Andrew Stubbs  <ams@codesourcery.com>

	gcc/testsuite/
	* gcc.dg/graphite/scop-19.c: Check pie_enabled.
	* gcc.dg/pic-1.c: Disable on amdgcn.
	* gcc.dg/pic-2.c: Disable on amdgcn.
	* gcc.dg/pic-3.c: Disable on amdgcn.
	* gcc.dg/pic-4.c: Disable on amdgcn.
	* gcc.dg/pie-3.c: Disable on amdgcn.
	* gcc.dg/pie-4.c: Disable on amdgcn.
	* gcc.dg/uninit-19.c: Check pie_enabled.
	* lib/target-supports.exp (check_effective_target_pie): Add amdgcn.

From-SVN: r268026
This commit is contained in:
Andrew Stubbs 2019-01-17 12:36:10 +00:00 committed by Andrew Stubbs
parent 3f21b8e3f7
commit 90eb9be6eb
9 changed files with 22 additions and 8 deletions

View File

@ -1,3 +1,15 @@
2019-01-17 Andrew Stubbs <ams@codesourcery.com>
* gcc.dg/graphite/scop-19.c: Check pie_enabled.
* gcc.dg/pic-1.c: Disable on amdgcn.
* gcc.dg/pic-2.c: Disable on amdgcn.
* gcc.dg/pic-3.c: Disable on amdgcn.
* gcc.dg/pic-4.c: Disable on amdgcn.
* gcc.dg/pie-3.c: Disable on amdgcn.
* gcc.dg/pie-4.c: Disable on amdgcn.
* gcc.dg/uninit-19.c: Check pie_enabled.
* lib/target-supports.exp (check_effective_target_pie): Add amdgcn.
2019-01-17 Andrew Stubbs <ams@codesourcery.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
Julian Brown <julian@codesourcery.com>

View File

@ -31,6 +31,6 @@ d_growable_string_append_buffer (struct d_growable_string *dgs,
if (need > dgs->alc)
d_growable_string_resize (dgs, need);
}
/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 2 "graphite" { target nonpic } } } */
/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 1 "graphite" { target { ! nonpic } } } } */
/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 2 "graphite" { target { nonpic || pie_enabled } } } } */
/* { dg-final { scan-tree-dump-times "number of SCoPs: 0" 1 "graphite" { target { ! { nonpic || pie_enabled } } } } } */

View File

@ -1,4 +1,4 @@
/* { dg-do compile { target { ! { *-*-darwin* hppa*-*-* } } } } */
/* { dg-do compile { target { ! { *-*-darwin* hppa*-*-* amdgcn*-*-* } } } } */
/* { dg-require-effective-target fpic } */
/* { dg-options "-fpic" } */

View File

@ -2,6 +2,7 @@
/* { dg-require-effective-target fpic } */
/* { dg-options "-fPIC" } */
/* { dg-skip-if "__PIC__ is always 1 for MIPS" { mips*-*-* } } */
/* { dg-skip-if "__PIE__ is always defined for GCN" { amdgcn*-*-* } } */
#if __PIC__ != 2
# error __PIC__ is not 2!

View File

@ -1,4 +1,4 @@
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* } } } } */
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* amdgcn*-*-* } } } } */
/* { dg-options "-fno-pic" } */
#ifdef __PIC__

View File

@ -1,4 +1,4 @@
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* } } } } */
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* amdgcn*-*-* } } } } */
/* { dg-options "-fno-PIC" } */
#ifdef __PIC__

View File

@ -1,4 +1,4 @@
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* } } } } */
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* amdgcn*-*-* } } } } */
/* { dg-options "-fno-pie" } */
#ifdef __PIC__

View File

@ -1,4 +1,4 @@
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* } } } } */
/* { dg-do compile { target { ! { *-*-darwin* hppa*64*-*-* mips*-*-linux-* amdgcn*-*-* } } } } */
/* { dg-options "-fno-PIE" } */
#ifdef __PIC__

View File

@ -1176,7 +1176,8 @@ proc check_effective_target_pie { } {
|| [istarget *-*-dragonfly*]
|| [istarget *-*-freebsd*]
|| [istarget *-*-linux*]
|| [istarget *-*-gnu*] } {
|| [istarget *-*-gnu*]
|| [istarget *-*-amdhsa]} {
return 1;
}
if { [istarget *-*-solaris2.1\[1-9\]*] } {