[AArch64] Restrict pic-small.c by new test directive

2015-07-01  Jiong Wang  <jiong.wang@arm.com>

      gcc/
	* doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
	Document "aarch64_small_fpic".

      gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_aarch64_small_fpic): New function.
	* gcc.target/aarch64/pic-small.c: Restrict this test under
	check_effective_target_aarch64_small_fpic.

From-SVN: r225232
This commit is contained in:
Jiong Wang 2015-07-01 08:51:49 +00:00 committed by Jiong Wang
parent 34ecdb0f20
commit 8997ef1850
5 changed files with 41 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2015-07-01 Jiong Wang <jiong.wang@arm.com>
* doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
Document "aarch64_small_fpic".
2015-07-01 Jiong Wang <jiong.wang@arm.com>
* configure.ac: Add check for aarch64 assembler -fpic relocation

View File

@ -1580,6 +1580,15 @@ ARM target prefers @code{LDRD} and @code{STRD} instructions over
@end table
@subsubsection AArch64-specific attributes
@table @code
@item aarch64_small_fpic
Binutils installed on test system supports relocation types required by -fpic
for AArch64 small memory model.
@end table
@subsubsection MIPS-specific attributes
@table @code

View File

@ -1,3 +1,9 @@
2015-07-01 Jiong Wang <jiong.wang@arm.com>
* lib/target-supports.exp (check_effective_target_aarch64_small_fpic): New function.
* gcc.target/aarch64/pic-small.c: Restrict this test under
check_effective_target_aarch64_small_fpic.
2015-07-01 Eric Botcazou <ebotcazou@adacore.com>
* gfortran.dg/gomp/pr66633.f90: New test.

View File

@ -1,4 +1,5 @@
/* { dg-do compile } */
/* { dg-require-effective-target aarch64_small_fpic } */
/* { dg-options "-O2 -fpic -fno-inline --save-temps" } */
void abort ();

View File

@ -937,6 +937,26 @@ proc check_effective_target_fpic { } {
return 0
}
# On AArch64, if -fpic is not supported, then we will fall back to -fPIC
# silently. So, we can't rely on above "check_effective_target_fpic" as it
# assumes compiler will give warning if -fpic not supported. Here we check
# whether binutils supports those new -fpic relocation modifiers, and assume
# -fpic is supported if there is binutils support. GCC configuration will
# enable -fpic for AArch64 in this case.
#
# "check_effective_target_aarch64_small_fpic" is dedicated for checking small
# memory model -fpic relocation types.
proc check_effective_target_aarch64_small_fpic { } {
if { [istarget aarch64*-*-*] } {
return [check_no_compiler_messages aarch64_small_fpic object {
void foo (void) { asm ("ldr x0, [x2, #:gotpage_lo15:globalsym]"); }
}]
} else {
return 0
}
}
# Return 1 if -shared is supported, as in no warnings or errors
# emitted, 0 otherwise.