Commit | Line | Data |
---|---|---|
ad95f82a | 1 | ENTRY=_start |
252b5132 RH |
2 | SCRIPT_NAME=elf |
3 | ELFSIZE=64 | |
4 | TEMPLATE_NAME=elf32 | |
5 | OUTPUT_FORMAT="elf64-alpha" | |
6 | TEXT_START_ADDR="0x120000000" | |
d3480244 | 7 | MAXPAGESIZE=0x10000 |
252b5132 RH |
8 | NONPAGED_TEXT_START_ADDR="0x120000000" |
9 | ARCH=alpha | |
10 | MACHINE= | |
11 | GENERATE_SHLIB_SCRIPT=yes | |
12 | DATA_PLT= | |
13 | NOP=0x47ff041f | |
14 | ||
465bc359 AM |
15 | OTHER_READONLY_SECTIONS=" |
16 | .reginfo ${RELOCATING-0} : { *(.reginfo) }" | |
88cdf297 NC |
17 | |
18 | # This code gets inserted into the generic elf32.sc linker script | |
19 | # and allows us to define our own command line switches. | |
b2009ff7 | 20 | PARSE_AND_LIST_PROLOGUE=' |
88cdf297 NC |
21 | #define OPTION_TASO 300 |
22 | /* Set the start address as in the Tru64 ld */ | |
23 | #define ALPHA_TEXT_START_32BIT 0x12000000 | |
24 | ||
25 | static int elf64alpha_32bit = 0; | |
26 | ||
88cdf297 | 27 | struct ld_emulation_xfer_struct ld_elf64alpha_emulation; |
48f6162b | 28 | static void gld_elf64alpha_finish PARAMS ((void)); |
b2009ff7 | 29 | ' |
88cdf297 | 30 | |
b2009ff7 L |
31 | PARSE_AND_LIST_LONGOPTS=' |
32 | {"taso", no_argument, NULL, OPTION_TASO}, | |
33 | ' | |
88cdf297 | 34 | |
b2009ff7 L |
35 | PARSE_AND_LIST_OPTIONS=' |
36 | fprintf (file, _(" -taso\t\t\tLoad executable in the lower 31-bit addressable\n")); | |
37 | fprintf (file, _("\t\t\t virtual address range\n")); | |
38 | ' | |
88cdf297 | 39 | |
b2009ff7 | 40 | PARSE_AND_LIST_ARGS_CASES=' |
88cdf297 NC |
41 | case EOF: |
42 | if (elf64alpha_32bit && !link_info.shared && !link_info.relocateable) | |
43 | { | |
44 | lang_section_start (".interp", | |
45 | exp_binop ('\''+'\'', | |
46 | exp_intop (ALPHA_TEXT_START_32BIT), | |
47 | exp_nameop (SIZEOF_HEADERS, NULL))); | |
48 | ld_elf64alpha_emulation.finish = gld_elf64alpha_finish; | |
49 | } | |
50 | return 0; | |
51 | ||
52 | case OPTION_TASO: | |
53 | elf64alpha_32bit = 1; | |
54 | break; | |
b2009ff7 | 55 | ' |
88cdf297 | 56 | |
b2009ff7 | 57 | PARSE_AND_LIST_EPILOGUE=' |
88cdf297 NC |
58 | #include "elf/internal.h" |
59 | #include "elf/alpha.h" | |
60 | #include "elf-bfd.h" | |
61 | ||
62 | static void | |
b2009ff7 | 63 | gld_elf64alpha_finish() |
88cdf297 NC |
64 | { |
65 | elf_elfheader (output_bfd)->e_flags |= EF_ALPHA_32BIT; | |
b2009ff7 L |
66 | } |
67 | ' |