]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
alpha, ld: remove -taso option
authorIvan Kokshaysky <ink@unseen.parts>
Sat, 15 Feb 2025 01:30:58 +0000 (01:30 +0000)
committerMaciej W. Rozycki <macro@orcam.me.uk>
Sat, 15 Feb 2025 01:30:58 +0000 (01:30 +0000)
The -taso switch was quite useful 25 years ago for porting 32-bit
code with broken integer-pointer casting. Not anymore. The EF_ALPHA_32BIT
Linux support is going to be dropped in kernel v6.14 [1], NetBSD and OpenBSD
never had it, so there is no point in keeping the -taso option around.

Also remove alpha special case that uses -taso from gdb.base/dump.exp
in gdb testsuite.

[1] https://lore.kernel.org/all/87jzb2tdb7.fsf_-_@email.froward.int.ebiederm.org

Signed-off-by: Ivan Kokshaysky <ink@unseen.parts>
Reviewed-By: Maciej W. Rozycki <macro@orcam.me.uk>
Approved-By: Andrew Burgess <aburgess@redhat.com>
gdb/testsuite/gdb.base/dump.exp
ld/NEWS
ld/emultempl/alphaelf.em
ld/ldlex.h

index 58fedb1d36b393c42fd4db07c58eaf5194a0da99..54efe51fbaaaa7c4957e7a3ce0e098c2d9391d05 100644 (file)
@@ -26,12 +26,6 @@ set endian "auto"
 
 set formats {binary ihex srec tekhex  verilog}
 
-if {[istarget "alpha*-*-*"]} {
-    # SREC etc cannot handle 64-bit addresses.  Force the test
-    # program into the low 31 bits of the address space.
-    lappend options "ldflags=-Wl,-taso"
-}
-
 # Runs the command 'print zero_all ()'.  Uses the PRINT_ZERO_ALL_COUNT
 # global to ensure the test names are unique.
 set print_zero_all_count 0
diff --git a/ld/NEWS b/ld/NEWS
index acb3263a29f67cf8f35cc56b610548a16c6c3c68..494bb83e49b35add96c1b818f7a9cae778953bea 100644 (file)
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,8 @@
 -*- text -*-
 
+* Remove the linker -taso option for Alpha target, as Linux/Alpha kernel
+  support for 32-bit pointers has been removed.
+
 * On s390, generate ".eh_frame" unwind information for the linker generated
   .plt section.  Enabled by default.  Can be disabled using linker option
   --no-ld-generated-unwind-info.
index 5ae2587a65388076d217a3130627fba0d8e17469..995d7f07a7fe469e46f7c242954ec891ade3355f 100644 (file)
@@ -28,14 +28,8 @@ fragment <<EOF
 #include "elf/alpha.h"
 #include "elf-bfd.h"
 
-static bool limit_32bit;
-
 extern bool elf64_alpha_use_secureplt;
 
-
-/* Set the start address as in the Tru64 ld.  */
-#define ALPHA_TEXT_START_32BIT 0x12000000
-
 static void
 alpha_after_open (void)
 {
@@ -73,14 +67,6 @@ static void
 alpha_after_parse (void)
 {
   link_info.relax_pass = 2;
-  if (limit_32bit
-      && !bfd_link_pic (&link_info)
-      && !bfd_link_relocatable (&link_info))
-    lang_section_start (".interp",
-                       exp_binop ('+',
-                                  exp_intop (ALPHA_TEXT_START_32BIT),
-                                  exp_nameop (SIZEOF_HEADERS, NULL)),
-                       NULL);
 
   ldelf_after_parse ();
 }
@@ -97,40 +83,24 @@ alpha_before_allocation (void)
       && ! RELAXATION_DISABLED_BY_USER)
     ENABLE_RELAXATION;
 }
-
-static void
-alpha_finish (void)
-{
-  if (limit_32bit)
-    elf_elfheader (link_info.output_bfd)->e_flags |= EF_ALPHA_32BIT;
-
-  ldelf_finish ();
-}
 EOF
 
 # Define some shell vars to insert bits of code into the standard elf
 # parse_args and list_options functions.
 #
 PARSE_AND_LIST_LONGOPTS='
-  { "taso", no_argument, NULL, OPTION_TASO },
   { "secureplt", no_argument, NULL, OPTION_SECUREPLT },
   { "no-secureplt", no_argument, NULL, OPTION_NO_SECUREPLT },
 '
 
 PARSE_AND_LIST_OPTIONS='
   fprintf (file, _("\
-  --taso                      Load executable in the lower 31-bit addressable\n\
-                                virtual address range\n"));
-  fprintf (file, _("\
   --secureplt                 Force PLT in text segment\n"));
   fprintf (file, _("\
   --no-secureplt              Force PLT in data segment\n"));
 '
 
 PARSE_AND_LIST_ARGS_CASES='
-    case OPTION_TASO:
-      limit_32bit = 1;
-      break;
     case OPTION_SECUREPLT:
       elf64_alpha_use_secureplt = true;
       break;
@@ -144,4 +114,3 @@ PARSE_AND_LIST_ARGS_CASES='
 LDEMUL_AFTER_OPEN=alpha_after_open
 LDEMUL_AFTER_PARSE=alpha_after_parse
 LDEMUL_BEFORE_ALLOCATION=alpha_before_allocation
-LDEMUL_FINISH=alpha_finish
index b8b7d6b6829d9e7427ebd99eb556237005538940..999d0defc6151a3408a86064f0898d14bcb40085 100644 (file)
@@ -246,7 +246,6 @@ enum option_values
   OPTION_LIBPATH,
   OPTION_NOLIBPATH,
   /* Used by emultempl/alphaelf.em.  */
-  OPTION_TASO,
   OPTION_SECUREPLT,
   OPTION_NO_SECUREPLT,
   /* Used by emultempl/armelf.em.  */