Add support for x86_64-*-linux-gnu* target

This commit is contained in:
Nick Clifton 2000-11-30 19:30:33 +00:00
parent 8d88c4ca53
commit 2be3aa031f
7 changed files with 381 additions and 326 deletions

View File

@ -1,3 +1,11 @@
2000-11-30 Jan Hubicka <jh@suse.cz>
* Makefile.am (ALL_EMULATIONS): Add eelf_x86_64.o
(eelf_x86_64.c): New.
* Makefile.in: Regenerate.
* configure.tgt: Add support for x86_64-*-linux-gnu*.
* emulparams/elf_x86_64.sh: New.
2000-11-30 Hans-Peter Nilsson <hp@axis.com>
* emulparams/crislinux.sh (ENTRY): Change back to _start.

View File

@ -242,6 +242,7 @@ ALL_EMULATIONS = \
ALL_64_EMULATIONS = \
eelf64_ia64.o \
eelf_x86_64.o \
eelf64_sparc.o \
eelf64alpha.o \
eelf64bmip.o \
@ -499,6 +500,9 @@ eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \
eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)"
eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)"
eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)"

View File

@ -351,6 +351,7 @@ ALL_EMULATIONS = \
ALL_64_EMULATIONS = \
eelf64_ia64.o \
eelf_x86_64.o \
eelf64_sparc.o \
eelf64alpha.o \
eelf64bmip.o \
@ -1213,6 +1214,9 @@ eelf64bmip.c: $(srcdir)/emulparams/elf64bmip.sh \
eelf_i386.c: $(srcdir)/emulparams/elf_i386.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_i386 "$(tdir_elf_i386)"
eelf_x86_64.c: $(srcdir)/emulparams/elf_x86_64.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_x86_64 "$(tdir_elf_x86_64)"
eelf_i386_be.c: $(srcdir)/emulparams/elf_i386_be.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} elf_i386_be "$(tdir_elf_i386_be)"

View File

@ -124,6 +124,10 @@ i[3456]86-*-linux-gnu*) targ_emul=elf_i386
targ_extra_emuls=i386linux
tdir_i386linux=${targ_alias}aout
;;
x86_64-*-linux-gnu*) targ_emul=elf_x86_64
targ_extra_emuls="elf_i386 i386linux"
tdir_i386linux=${targ_alias}aout
;;
i[3456]86-*-sysv[45]*) targ_emul=elf_i386 ;;
i[3456]86-*-solaris2*) targ_emul=elf_i386 ;;
i[3456]86-*-unixware) targ_emul=elf_i386 ;;

View File

@ -0,0 +1,11 @@
SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-x86-64"
TEXT_START_ADDR=0x1000
MAXPAGESIZE=0x1000
NONPAGED_TEXT_START_ADDR=0x1000
ARCH=i386
MACHINE=
NOP=0x9090
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes

View File

@ -120,13 +120,11 @@ static void print_statement_list
PARAMS ((lang_statement_union_type *, lang_output_section_statement_type *));
static void print_statements PARAMS ((void));
static bfd_vma insert_pad
PARAMS ((lang_statement_union_type **this_ptr, fill_type fill,
unsigned int power, asection *output_section_statement,
bfd_vma dot));
PARAMS ((lang_statement_union_type **, fill_type,
unsigned int, asection *, bfd_vma));
static bfd_vma size_input_section
PARAMS ((lang_statement_union_type **this_ptr,
lang_output_section_statement_type *output_section_statement,
fill_type fill, bfd_vma dot, boolean relax));
PARAMS ((lang_statement_union_type **, lang_output_section_statement_type *,
fill_type, bfd_vma, boolean));
static void lang_finish PARAMS ((void));
static void ignore_bfd_errors PARAMS ((const char *, ...));
static void lang_check PARAMS ((void));
@ -197,11 +195,11 @@ etree_type *base; /* Relocation base - or null */
#define cat(a,b) a/**/b
#endif
#define new_stat(x,y) (cat(x,_type)*) new_statement(cat(x,_enum), sizeof(cat(x,_type)),y)
#define new_stat(x, y) (cat (x, _type)*) new_statement (cat (x, _enum), sizeof (cat (x, _type)), y)
#define outside_section_address(q) ((q)->output_offset + (q)->output_section->vma)
#define outside_symbol_address(q) ((q)->value + outside_section_address(q->section))
#define outside_symbol_address(q) ((q)->value + outside_section_address (q->section))
#define SECTION_NAME_MAP_LENGTH (16)

File diff suppressed because it is too large Load Diff