From 65102a05c2f79d59b34632024bc734a1847dc832 Mon Sep 17 00:00:00 2001 From: obrien Date: Mon, 28 May 2001 06:19:25 +0000 Subject: We use the stock version of this file now. I committed our rev 1.2 (start symbol) and 1.3 (max pagesize) fixes into the FSF/GNU source tree. --- contrib/binutils/ld/emulparams/elf64alpha.sh | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/contrib/binutils/ld/emulparams/elf64alpha.sh b/contrib/binutils/ld/emulparams/elf64alpha.sh index 2e6e915..98d65b2 100644 --- a/contrib/binutils/ld/emulparams/elf64alpha.sh +++ b/contrib/binutils/ld/emulparams/elf64alpha.sh @@ -1,3 +1,6 @@ +# $FreeBSD$ + + ENTRY=_start SCRIPT_NAME=elf ELFSIZE=64 @@ -13,3 +16,54 @@ DATA_PLT= NOP=0x47ff041f OTHER_READONLY_SECTIONS='.reginfo : { *(.reginfo) }' + +# This code gets inserted into the generic elf32.sc linker script +# and allows us to define our own command line switches. +PARSE_AND_LIST_PROLOGUE=' +#define OPTION_TASO 300 +/* Set the start address as in the Tru64 ld */ +#define ALPHA_TEXT_START_32BIT 0x12000000 + +static int elf64alpha_32bit = 0; + +struct ld_emulation_xfer_struct ld_elf64alpha_emulation; +static void gld_elf64alpha_finish (); +' + +PARSE_AND_LIST_LONGOPTS=' + {"taso", no_argument, NULL, OPTION_TASO}, +' + +PARSE_AND_LIST_OPTIONS=' + fprintf (file, _(" -taso\t\t\tLoad executable in the lower 31-bit addressable\n")); + fprintf (file, _("\t\t\t virtual address range\n")); +' + +PARSE_AND_LIST_ARGS_CASES=' + case EOF: + if (elf64alpha_32bit && !link_info.shared && !link_info.relocateable) + { + lang_section_start (".interp", + exp_binop ('\''+'\'', + exp_intop (ALPHA_TEXT_START_32BIT), + exp_nameop (SIZEOF_HEADERS, NULL))); + ld_elf64alpha_emulation.finish = gld_elf64alpha_finish; + } + return 0; + + case OPTION_TASO: + elf64alpha_32bit = 1; + break; +' + +PARSE_AND_LIST_EPILOGUE=' +#include "elf/internal.h" +#include "elf/alpha.h" +#include "elf-bfd.h" + +static void +gld_elf64alpha_finish() +{ + elf_elfheader (output_bfd)->e_flags |= EF_ALPHA_32BIT; +} +' -- cgit v1.1