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