+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
@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
+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.
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.