]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
AArch64: Deprecate -mpc-relative-literal-loads
authorWilco Dijkstra <wilco.dijkstra@arm.com>
Tue, 3 Feb 2026 18:31:51 +0000 (18:31 +0000)
committerWilco Dijkstra <wilco.dijkstra@arm.com>
Wed, 29 Apr 2026 16:44:44 +0000 (16:44 +0000)
Deprecate -mpc-relative-literal-loads.  Emitting special symbols in
the text section causes issues (see PR123791).  Since the option is
relatively obscure and GCC now uses anchors for literals, there is
no need to keep it.

gcc:
* config/aarch64/aarch64.opt (mpc-relative-literal-loads):
Deprecate.
* config/aarch64/aarch64.cc (aarch64_override_options):
Add deprecated warning for -mpc-relative-literal-loads.
* doc/invoke.texi (mpc-relative-literal-loads): Update docs.

gcc/testsuite:
* gcc.target/aarch64/pr123791.c: Add -Wno-deprecated.
* gcc.target/aarch64/pr78733.c: Likewise.
* gcc.target/aarch64/pr79041-2.c: Likewise.
* gcc.target/aarch64/pr94530.c: Likewise.

gcc/config/aarch64/aarch64.cc
gcc/config/aarch64/aarch64.opt
gcc/doc/invoke.texi
gcc/testsuite/gcc.target/aarch64/pr123791.c
gcc/testsuite/gcc.target/aarch64/pr78733.c
gcc/testsuite/gcc.target/aarch64/pr79041-2.c
gcc/testsuite/gcc.target/aarch64/pr94530.c

index 64e25b2df1891cb1ed74967e5f752fff6ccd4579..a85fb0f8cfbedf2f1cd33415912d6bede6b7b07c 100644 (file)
@@ -20152,6 +20152,9 @@ aarch64_override_options (void)
   if (TARGET_ILP32)
     warning (OPT_Wdeprecated, "%<-mabi=ilp32%> is deprecated");
 
+  if (global_options.x_pcrelative_literal_loads == 1)
+    warning (OPT_Wdeprecated, "%<-mpc-relative-literal-loads%> is deprecated");
+
   /* Convert -msve-vector-bits to a VG count.  */
   aarch64_sve_vg = aarch64_convert_sve_vector_bits (aarch64_sve_vector_bits);
 
index 64004f21332c63069109bfb3f9ab8f88cc171b3e..ef0d96e7486000c83851ebdc2ffddf5bd6123a12 100644 (file)
@@ -222,7 +222,7 @@ Enum(aarch64_abi) String(lp64) Value(AARCH64_ABI_LP64)
 
 mpc-relative-literal-loads
 Target Save Var(pcrelative_literal_loads) Init(2) Save
-PC relative literal loads.
+PC relative literal loads.  This option is deprecated.
 
 mbranch-protection=
 Target RejectNegative Joined Var(aarch64_branch_protection_string) Save
index c9b8953d2a8229ac30d9e30cbf786690d7ea9bfb..756af474310c57c0549a7b0b5c846a3ce3fa5fe8 100644 (file)
@@ -21672,6 +21672,8 @@ accessed using a single instruction and emitted after each function.  This
 limits the maximum size of functions to 1MB.  This is enabled by default for
 @option{-mcmodel=tiny}.
 
+The @option{-mpc-relative-literal-loads} is deprecated.
+
 @opindex msign-return-address
 @item -msign-return-address=@var{scope}
 Select the function scope on which return address signing will be applied.
index afdf37e8aac1a6451bb1375a32ab68f81b32b36c..8e394231a4a02dbb5bc1ad2a50775976c349593b 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mpc-relative-literal-loads" } */
+/* { dg-options "-O2 -mpc-relative-literal-loads -Wno-deprecated" } */
 
 char *
 foo ()
index 8556ef3f37187f0bf52d7113ab011bf0f8be2b84..9de6fb6dc1ae3d7690ca41c9871a835eb4212476 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie" } */
+/* { dg-options "-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie -Wno-deprecated" } */
 /* { dg-require-effective-target lp64 } */
 /* { dg-skip-if "-mcmodel=large, no support for -fpic" { aarch64-*-* }  { "-fpic" } { "" } } */
 
index 8556ef3f37187f0bf52d7113ab011bf0f8be2b84..9de6fb6dc1ae3d7690ca41c9871a835eb4212476 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie" } */
+/* { dg-options "-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie -Wno-deprecated" } */
 /* { dg-require-effective-target lp64 } */
 /* { dg-skip-if "-mcmodel=large, no support for -fpic" { aarch64-*-* }  { "-fpic" } { "" } } */
 
index 5dfdbe3311d741349c46b4ce3ad3f5819063f894..9620b63769dbc92c30ebeb9aab9cd6579b012410 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target lp64 } */
-/* { dg-options "-Os -mcpu=falkor -mpc-relative-literal-loads -mcmodel=large -fno-pie" } */
+/* { dg-options "-Os -mcpu=falkor -mpc-relative-literal-loads -mcmodel=large -fno-pie -Wno-deprecated" } */
 
 extern void bar(const char *);