For ia64, add a proper 'elf64-ia64-freebsd' output format to BFD, so the

ELF branding for FreeBSD is done in the same way as amd64, i386 and
sparc.  Something similar should probably also be done for arm, mips and
powerpc.
This commit is contained in:
Dimitry Andric 2010-12-05 20:24:22 +00:00
parent 2006fbc8fe
commit e3c77b8170
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/projects/binutils-2.17/; revision=216200
8 changed files with 31 additions and 6 deletions

View File

@ -5909,6 +5909,26 @@ elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
#include "elfNN-target.h"
/* FreeBSD support. */
#undef TARGET_LITTLE_SYM
#define TARGET_LITTLE_SYM bfd_elfNN_ia64_freebsd_vec
#undef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "elfNN-ia64-freebsd"
#undef TARGET_BIG_SYM
#undef TARGET_BIG_NAME
#undef ELF_OSABI
#define ELF_OSABI ELFOSABI_FREEBSD
#undef elf_backend_post_process_headers
#define elf_backend_post_process_headers _bfd_elf_set_osabi
#undef elfNN_bed
#define elfNN_bed elfNN_ia64_fbsd_bed
#include "elfNN-target.h"
/* HPUX-specific vectors. */
#undef TARGET_LITTLE_SYM

View File

@ -594,6 +594,7 @@ extern const bfd_target bfd_elf32_i860_little_vec;
extern const bfd_target bfd_elf32_i860_vec;
extern const bfd_target bfd_elf32_i960_vec;
extern const bfd_target bfd_elf32_ia64_big_vec;
extern const bfd_target bfd_elf64_ia64_freebsd_vec;
extern const bfd_target bfd_elf32_ia64_hpux_big_vec;
extern const bfd_target bfd_elf32_ip2k_vec;
extern const bfd_target bfd_elf32_iq2000_vec;

View File

@ -7704,8 +7704,10 @@ ia64_target_format ()
else
{
if (md.flags & EF_IA_64_ABI64)
#ifdef TE_AIX50
#if defined(TE_AIX50)
return "elf64-ia64-aix-little";
#elif defined(TE_FreeBSD)
return "elf64-ia64-freebsd";
#else
return "elf64-ia64-little";
#endif

View File

@ -4,3 +4,4 @@ unset DATA_ADDR
unset SMALL_DATA_CTOR
unset SMALL_DATA_DTOR
. ${srcdir}/emulparams/elf_fbsd.sh
OUTPUT_FORMAT="elf64-ia64-freebsd"

View File

@ -1,6 +1,6 @@
# $FreeBSD$
DEFAULT_VECTOR= bfd_elf64_ia64_little_vec
DEFAULT_VECTOR= bfd_elf64_ia64_freebsd_vec
SRCS+= cofflink.c \
cpu-ia64.c \
@ -18,13 +18,14 @@ SRCS+= cofflink.c \
VECS+= ${DEFAULT_VECTOR} \
bfd_efi_app_ia64_vec \
bfd_elf64_ia64_little_vec \
bfd_elf64_ia64_big_vec \
bfd_elf64_little_generic_vec bfd_elf64_big_generic_vec \
bfd_elf32_little_generic_vec bfd_elf32_big_generic_vec
CLEANFILES+= elf64-ia64.c pepigen.c pex64igen.c
elf64-ia64.c: elf-fbsd-brand.c elfxx-ia64.c
elf64-ia64.c: elfxx-ia64.c
sed -e s/NN/64/g ${.ALLSRC} > ${.TARGET}
pepigen.c: peXXigen.c

View File

@ -1,5 +1,5 @@
/* $FreeBSD$ */
OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little")
OUTPUT_FORMAT("elf64-ia64-freebsd", "elf64-ia64-freebsd", "elf64-ia64-freebsd")
OUTPUT_ARCH(ia64)
ENTRY(_start_plabel)
SECTIONS

View File

@ -1,5 +1,5 @@
/* $FreeBSD$ */
OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little")
OUTPUT_FORMAT("elf64-ia64-freebsd", "elf64-ia64-freebsd", "elf64-ia64-freebsd")
OUTPUT_ARCH(ia64)
ENTRY(_start)
SECTIONS

View File

@ -1,5 +1,5 @@
/* $FreeBSD$ */
OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little")
OUTPUT_FORMAT("elf64-ia64-freebsd", "elf64-ia64-freebsd", "elf64-ia64-freebsd")
OUTPUT_ARCH(ia64)
ENTRY(__start)
SEARCH_DIR(/usr/lib);