This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

support for FreeBSD and GNU/FreeBSD


Hi,

Here is a patch to add support for the executable and shared library format
that the FreeBSD kernel understands. It is a variant of ELF with a special
"brand" label in the first 16 bytes of the object. Without a kernel patch
or an (unreliable and privilege requiring) kernel customization, the kernel
will only accept for execution objects carry this "brand" label.

In the previous FreeBSD port of binutils, this brand label has been added
in the mainline bfd/elf.c code, which makes it impossible to compile
Linux ELF binutils and FreeBSD ELF binutils from the same source. In other
words, the mistake was to continue to use the target name "elf32-i386"
for a binary format which is different from "elf32-i386".

This patch implements the FreeBSD ELF variant as a "elf32-i386-freebsd"
target, and changes gas and ld to use this variant when appropriate.
I need this patch for the GNU/FreeBSD system (FreeBSD with glibc).

There are two forms of the "brand" label: A standard compliant one,
supported since FreeBSD 4.1, and a disgusting one, which is still worth
supporting because FreeBSD 4.0 is still quite widespread (was current just
two years ago). The patch here implements both.


bfd/ChangeLog:
2002-07-04  Bruno Haible  <bruno@clisp.org>

	* elf32-i386.c: Don't defined ELF_ARCH etc. if this file is included
	by a target variant implementation.
	* elf64-alpha.c: Likewise.
	* elf32-i386-fbsd.c: New file.
	* elf64-alpha-fbsd.c: New file.
	* targets.c: Support bfd_elf32_i386_freebsd_vec and
	bfd_elf64_alpha_freebsd_vec.
	* configure.in: Accept the vectors bfd_elf32_i386_freebsd_vec,
	bfd_elf64_alpha_freebsd_vec.
	* Makefile.am (BFD32_BACKENDS): Add elf32-i386-fbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i386-fbsd.c.
	(BFD64_BACKENDS): Add elf64-alpha-fbsd.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-alpha-fbsd.c.
	(elf32-i386-fbsd.lo, elf64-alpha-fbsd.lo): Add dependencies.
	* config.bfd: For FreeBSD targets, set targ_defvec to a FreeBSD
	specific targets. Define NEW_FREEBSD_ABI_LABEL if appropriate.

gas/ChangeLog:
2002-07-04  Bruno Haible  <bruno@clisp.org>

	* config/tc-i386.h (ELF_TARGET_FORMAT): New macro.
	(TARGET_FORMAT): Use ELF_TARGET_FORMAT instead of "elf32-i386".
	* config/tc-i386.c (i386_target_format): Likewise.
	* config/tc-alpha.h (ELF_TARGET_FORMAT): New macro.
	(TARGET_FORMAT): Use ELF_TARGET_FORMAT instead of "elf64-alpha".

ld/ChangeLog:
2002-07-04  Bruno Haible  <bruno@clisp.org>

	* emulparams/elf_i386_fbsd.sh: Set OUTPUT_FORMAT to
	elf32-i386-freebsd.
	* emulparams/elf64alpha_fbsd.sh: Set OUTPUT_FORMAT to
	elf64-alpha-freebsd.

*** binutils-2.12.90.0.14/bfd/elf32-i386.c.bak	Wed Jun 26 18:24:56 2002
--- binutils-2.12.90.0.14/bfd/elf32-i386.c	Wed Jul  3 00:21:07 2002
***************
*** 3107,3117 ****
--- 3107,3119 ----
    return true;
  }
  
+ #ifndef ELF_ARCH
  #define TARGET_LITTLE_SYM		bfd_elf32_i386_vec
  #define TARGET_LITTLE_NAME		"elf32-i386"
  #define ELF_ARCH			bfd_arch_i386
  #define ELF_MACHINE_CODE		EM_386
  #define ELF_MAXPAGESIZE			0x1000
+ #endif /* ELF_ARCH */
  
  #define elf_backend_can_gc_sections	1
  #define elf_backend_can_refcount	1
*** binutils-2.12.90.0.14/bfd/elf64-alpha.c.bak	Wed Jun 26 18:24:56 2002
--- binutils-2.12.90.0.14/bfd/elf64-alpha.c	Wed Jul  3 00:21:08 2002
***************
*** 5539,5549 ****
--- 5539,5551 ----
    NULL
  };
  
+ #ifndef ELF_ARCH
  #define TARGET_LITTLE_SYM	bfd_elf64_alpha_vec
  #define TARGET_LITTLE_NAME	"elf64-alpha"
  #define ELF_ARCH		bfd_arch_alpha
  #define ELF_MACHINE_CODE	EM_ALPHA
  #define ELF_MAXPAGESIZE	0x10000
+ #endif /* ELF_ARCH */
  
  #define bfd_elf64_bfd_link_hash_table_create \
    elf64_alpha_bfd_link_hash_table_create
*** binutils-2.12.90.0.14/bfd/elf32-i386-fbsd.c.bak	Wed Jul  3 00:21:07 2002
--- binutils-2.12.90.0.14/bfd/elf32-i386-fbsd.c	Wed Jul  3 00:47:16 2002
***************
*** 0 ****
--- 1,56 ----
+ /* Intel IA-32 specific support for 32-bit ELF on FreeBSD.
+    Copyright 2002 Free Software Foundation, Inc.
+ 
+ This file is part of BFD, the Binary File Descriptor library.
+ 
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ 
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+ 
+ #define TARGET_LITTLE_SYM		bfd_elf32_i386_freebsd_vec
+ #define TARGET_LITTLE_NAME		"elf32-i386-freebsd"
+ #define ELF_ARCH			bfd_arch_i386
+ #define ELF_MACHINE_CODE		EM_386
+ #define ELF_MAXPAGESIZE			0x1000
+ 
+ #include "bfd.h"
+ #include "sysdep.h"
+ #include "elf-bfd.h"
+ 
+ /* The kernel recognizes executables as valid only if they carry a
+    "FreeBSD" label in the ELF header.  So we put this label on all
+    executables and (for simplicity) also all other object files.  */
+ 
+ static void elf_i386_post_process_headers
+   PARAMS ((bfd *, struct bfd_link_info *));
+ 
+ static void
+ elf_i386_post_process_headers (abfd, link_info)
+      bfd * abfd;
+      struct bfd_link_info * link_info ATTRIBUTE_UNUSED;
+ {
+   Elf_Internal_Ehdr * i_ehdrp;	/* ELF file header, internal form.  */
+ 
+   i_ehdrp = elf_elfheader (abfd);
+ 
+ #ifdef NEW_FREEBSD_ABI_LABEL
+   /* Put an ABI label supported by FreeBSD >= 4.1.  */
+   i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD;
+ #else
+   memcpy (&i_ehdrp->e_ident[EI_ABIVERSION], "FreeBSD", 8);
+ #endif
+ }
+ 
+ #define elf_backend_post_process_headers	elf_i386_post_process_headers
+ 
+ #include "elf32-i386.c"
*** binutils-2.12.90.0.14/bfd/elf64-alpha-fbsd.c.bak	Wed Jul  3 00:21:08 2002
--- binutils-2.12.90.0.14/bfd/elf64-alpha-fbsd.c	Wed Jul  3 00:47:42 2002
***************
*** 0 ****
--- 1,56 ----
+ /* Alpha specific support for 64-bit ELF on FreeBSD.
+    Copyright 2002 Free Software Foundation, Inc.
+ 
+ This file is part of BFD, the Binary File Descriptor library.
+ 
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ 
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+ 
+ #define TARGET_LITTLE_SYM		bfd_elf64_alpha_freebsd_vec
+ #define TARGET_LITTLE_NAME		"elf64-alpha-freebsd"
+ #define ELF_ARCH			bfd_arch_alpha
+ #define ELF_MACHINE_CODE		EM_ALPHA
+ #define ELF_MAXPAGESIZE			0x10000
+ 
+ #include "bfd.h"
+ #include "sysdep.h"
+ #include "elf-bfd.h"
+ 
+ /* The kernel recognizes executables as valid only if they carry a
+    "FreeBSD" label in the ELF header.  So we put this label on all
+    executables and (for simplicity) also all other object files.  */
+ 
+ static void elf_alpha_post_process_headers
+   PARAMS ((bfd *, struct bfd_link_info *));
+ 
+ static void
+ elf_alpha_post_process_headers (abfd, link_info)
+      bfd * abfd;
+      struct bfd_link_info * link_info ATTRIBUTE_UNUSED;
+ {
+   Elf_Internal_Ehdr * i_ehdrp;	/* ELF file header, internal form.  */
+ 
+   i_ehdrp = elf_elfheader (abfd);
+ 
+ #ifdef NEW_FREEBSD_ABI_LABEL
+   /* Put an ABI label supported by FreeBSD >= 4.1.  */
+   i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_FREEBSD;
+ #else
+   memcpy (&i_ehdrp->e_ident[EI_ABIVERSION], "FreeBSD", 8);
+ #endif
+ }
+ 
+ #define elf_backend_post_process_headers	elf_alpha_post_process_headers
+ 
+ #include "elf64-alpha.c"
*** binutils-2.12.90.0.14/bfd/targets.c.bak	Wed Jun 26 18:24:56 2002
--- binutils-2.12.90.0.14/bfd/targets.c	Wed Jul  3 00:21:07 2002
***************
*** 519,524 ****
--- 519,525 ----
  extern const bfd_target bfd_elf32_hppa_linux_vec;
  extern const bfd_target bfd_elf32_hppa_vec;
  extern const bfd_target bfd_elf32_i370_vec;
+ extern const bfd_target bfd_elf32_i386_freebsd_vec;
  extern const bfd_target bfd_elf32_i386_vec;
  extern const bfd_target bfd_elf32_i386qnx_vec;
  extern const bfd_target bfd_elf32_i860_little_vec;
***************
*** 564,569 ****
--- 565,571 ----
  extern const bfd_target bfd_elf32_v850_vec;
  extern const bfd_target bfd_elf32_vax_vec;
  extern const bfd_target bfd_elf32_xstormy16_vec;
+ extern const bfd_target bfd_elf64_alpha_freebsd_vec;
  extern const bfd_target bfd_elf64_alpha_vec;
  extern const bfd_target bfd_elf64_big_generic_vec;
  extern const bfd_target bfd_elf64_bigmips_vec;
***************
*** 780,785 ****
--- 782,788 ----
  	&bfd_elf32_hppa_linux_vec,
  	&bfd_elf32_hppa_vec,
  	&bfd_elf32_i370_vec,
+ 	&bfd_elf32_i386_freebsd_vec,
  	&bfd_elf32_i386_vec,
  	&bfd_elf32_i386qnx_vec,
  	&bfd_elf32_i860_little_vec,
***************
*** 830,835 ****
--- 833,839 ----
  	&bfd_elf32_vax_vec,
  	&bfd_elf32_xstormy16_vec,
  #ifdef BFD64
+ 	&bfd_elf64_alpha_freebsd_vec,
  	&bfd_elf64_alpha_vec,
  	&bfd_elf64_big_generic_vec,
  	&bfd_elf64_bigmips_vec,
*** binutils-2.12.90.0.14/bfd/configure.in.bak	Thu Jun 27 17:54:09 2002
--- binutils-2.12.90.0.14/bfd/configure.in	Wed Jul  3 00:21:07 2002
***************
*** 575,580 ****
--- 575,581 ----
      bfd_elf32_hppa_linux_vec)	tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
      bfd_elf32_hppa_vec)		tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
      bfd_elf32_i370_vec)		tb="$tb elf32-i370.lo elf32.lo $elf" ;;
+     bfd_elf32_i386_freebsd_vec)	tb="$tb elf32-i386-fbsd.lo elf32.lo $elf" ;;
      bfd_elf32_i386_vec)		tb="$tb elf32-i386.lo elf32.lo $elf" ;;
      bfd_elf32_i386qnx_vec)	tb="$tb elf32-i386qnx.lo elf32.lo $elf" ;;
      bfd_elf32_i860_little_vec)	tb="$tb elf32-i860.lo elf32.lo $elf" ;;
***************
*** 623,628 ****
--- 624,630 ----
      bfd_elf32_v850_vec)		tb="$tb elf32-v850.lo elf32.lo $elf" ;;
      bfd_elf32_vax_vec)		tb="$tb elf32-vax.lo elf32.lo $elf" ;;
      bfd_elf32_xstormy16_vec)	tb="$tb elf32-xstormy16.lo elf32.lo $elf" ;;
+     bfd_elf64_alpha_freebsd_vec) tb="$tb elf64-alpha-fbsd.lo elf64.lo $elf"; target_size=64 ;;
      bfd_elf64_alpha_vec)	tb="$tb elf64-alpha.lo elf64.lo $elf"; target_size=64 ;;
      bfd_elf64_big_generic_vec) 	tb="$tb elf64-gen.lo elf64.lo $elf"; target_size=64 ;;
      bfd_elf64_bigmips_vec) 	tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
*** binutils-2.12.90.0.14/bfd/Makefile.am.bak	Wed Jun 19 06:41:58 2002
--- binutils-2.12.90.0.14/bfd/Makefile.am	Wed Jul  3 00:25:50 2002
***************
*** 210,215 ****
--- 210,216 ----
  	elf32-hppa.lo \
  	elf32-i370.lo \
  	elf32-i386.lo \
+ 	elf32-i386-fbsd.lo \
  	elf32-i386qnx.lo \
  	elf32-i860.lo \
  	elf32-i960.lo \
***************
*** 366,371 ****
--- 367,373 ----
  	elf32-hppa.c \
  	elf32-i370.c \
  	elf32-i386.c \
+ 	elf32-i386-fbsd.c \
  	elf32-i386qnx.c \
  	elf32-i860.c \
  	elf32-i960.c \
***************
*** 471,476 ****
--- 473,479 ----
  	efi-app-ia64.lo \
  	elf64-x86-64.lo \
  	elf64-alpha.lo \
+ 	elf64-alpha-fbsd.lo \
  	elf64-hppa.lo \
  	elf64-ia64.lo \
  	elf64-gen.lo \
***************
*** 496,501 ****
--- 499,505 ----
  	efi-app-ia64.c \
  	elf64-x86-64.c \
  	elf64-alpha.c \
+ 	elf64-alpha-fbsd.c \
  	elf64-hppa.c \
  	elf64-gen.c \
  	elf64-mips.c \
***************
*** 1135,1140 ****
--- 1139,1148 ----
    elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/reloc-macros.h \
    elf32-target.h
+ elf32-i386-fbsd.lo: elf32-i386-fbsd.c elf32-i386.c $(INCDIR)/filenames.h \
+   $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
+   $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \
+   $(INCDIR)/elf/reloc-macros.h elf32-target.h
  elf32-i386qnx.lo: elf32-i386qnx.c elf32-i386.c $(INCDIR)/filenames.h \
    $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \
    $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/i386.h \
***************
*** 1480,1485 ****
--- 1488,1500 ----
    $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h \
    $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h libcoff.h \
    libecoff.h ecoffswap.h elf64-target.h
+ elf64-alpha-fbsd.lo: elf64-alpha-fbsd.c elf64-alpha.c $(INCDIR)/filenames.h \
+   elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
+   $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/alpha.h \
+   $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/internal.h \
+   $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h \
+   $(INCDIR)/coff/alpha.h $(INCDIR)/aout/ar.h libcoff.h \
+   libecoff.h ecoffswap.h elf64-target.h
  elf64-hppa.lo: elf64-hppa.c $(INCDIR)/alloca-conf.h \
    $(INCDIR)/filenames.h elf-bfd.h $(INCDIR)/elf/common.h \
    $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
*** binutils-2.12.90.0.14/bfd/config.bfd.bak	Wed Jun 26 18:24:56 2002
--- binutils-2.12.90.0.14/bfd/config.bfd	Wed Jul  3 00:44:30 2002
***************
*** 70,76 ****
  case "${targ}" in
  # START OF targmatch.h
  #ifdef BFD64
!   alpha*-*-netbsd* | alpha*-*-freebsd* | alpha*-*-openbsd*)
      targ_defvec=bfd_elf64_alpha_vec
      targ_selvecs=ecoffalpha_little_vec
      ;;
--- 70,85 ----
  case "${targ}" in
  # START OF targmatch.h
  #ifdef BFD64
!   alpha*-*-freebsd*)
!     targ_defvec=bfd_elf64_alpha_freebsd_vec
!     targ_selvecs=ecoffalpha_little_vec
!     # FreeBSD >= 4.1 supports the new, more standard way of ABI labelling.
!     case "${targ}" in
!       alpha*-*-freebsd4.[1-9]* | alpha*-*-freebsd[5-9]*)
! 	targ_cflags=-DNEW_FREEBSD_ABI_LABEL ;;
!     esac
!     ;;
!   alpha*-*-netbsd* | alpha*-*-openbsd*)
      targ_defvec=bfd_elf64_alpha_vec
      targ_selvecs=ecoffalpha_little_vec
      ;;
***************
*** 388,395 ****
      targ_underscore=yes
      ;;
    i[3456]86-*-freebsd*)
!     targ_defvec=bfd_elf32_i386_vec
      targ_selvecs=i386coff_vec
      ;;
    i[3456]86-*-netbsdelf*) 
      targ_defvec=bfd_elf32_i386_vec
--- 397,409 ----
      targ_underscore=yes
      ;;
    i[3456]86-*-freebsd*)
!     targ_defvec=bfd_elf32_i386_freebsd_vec
      targ_selvecs=i386coff_vec
+     # FreeBSD >= 4.1 supports the new, more standard way of ABI labelling.
+     case "${targ}" in
+       alpha*-*-freebsd4.[1-9]* | alpha*-*-freebsd[5-9]*)
+ 	targ_cflags=-DNEW_FREEBSD_ABI_LABEL ;;
+     esac
      ;;
    i[3456]86-*-netbsdelf*) 
      targ_defvec=bfd_elf32_i386_vec
*** binutils-2.12.90.0.14/gas/config/tc-i386.h.bak	Fri May 24 00:10:10 2002
--- binutils-2.12.90.0.14/gas/config/tc-i386.h	Wed Jul  3 00:21:08 2002
***************
*** 98,110 ****
  #define AOUT_TARGET_FORMAT	"a.out-i386"
  #endif
  
  #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
       || defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))
  extern const char *i386_target_format PARAMS ((void));
  #define TARGET_FORMAT i386_target_format ()
  #else
  #ifdef OBJ_ELF
! #define TARGET_FORMAT		"elf32-i386"
  #endif
  #ifdef OBJ_AOUT
  #define TARGET_FORMAT		AOUT_TARGET_FORMAT
--- 98,117 ----
  #define AOUT_TARGET_FORMAT	"a.out-i386"
  #endif
  
+ #ifdef TE_FreeBSD
+ #define ELF_TARGET_FORMAT	"elf32-i386-freebsd"
+ #endif
+ #ifndef ELF_TARGET_FORMAT
+ #define ELF_TARGET_FORMAT	"elf32-i386"
+ #endif
+ 
  #if ((defined (OBJ_MAYBE_COFF) && defined (OBJ_MAYBE_AOUT)) \
       || defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))
  extern const char *i386_target_format PARAMS ((void));
  #define TARGET_FORMAT i386_target_format ()
  #else
  #ifdef OBJ_ELF
! #define TARGET_FORMAT		ELF_TARGET_FORMAT
  #endif
  #ifdef OBJ_AOUT
  #define TARGET_FORMAT		AOUT_TARGET_FORMAT
*** binutils-2.12.90.0.14/gas/config/tc-i386.c.bak	Fri May 24 00:10:10 2002
--- binutils-2.12.90.0.14/gas/config/tc-i386.c	Wed Jul  3 00:21:08 2002
***************
*** 4899,4905 ****
        {
  	if (flag_code == CODE_64BIT)
  	  use_rela_relocations = 1;
! 	return flag_code == CODE_64BIT ? "elf64-x86-64" : "elf32-i386";
        }
  #endif
      default:
--- 4899,4905 ----
        {
  	if (flag_code == CODE_64BIT)
  	  use_rela_relocations = 1;
! 	return flag_code == CODE_64BIT ? "elf64-x86-64" : ELF_TARGET_FORMAT;
        }
  #endif
      default:
*** binutils-2.12.90.0.14/gas/config/tc-alpha.h.bak	Thu Mar  7 20:52:37 2002
--- binutils-2.12.90.0.14/gas/config/tc-alpha.h	Wed Jul  3 00:21:08 2002
***************
*** 28,37 ****
  
  #define TARGET_ARCH			bfd_arch_alpha
  
  #define TARGET_FORMAT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour	\
  		       ? "ecoff-littlealpha"				\
  		       : OUTPUT_FLAVOR == bfd_target_elf_flavour	\
! 		       ? "elf64-alpha"					\
  		       : OUTPUT_FLAVOR == bfd_target_evax_flavour	\
  		       ? "vms-alpha"					\
  		       : "unknown-format")
--- 28,44 ----
  
  #define TARGET_ARCH			bfd_arch_alpha
  
+ #ifdef TE_FreeBSD
+ #define ELF_TARGET_FORMAT	"elf64-alpha-freebsd"
+ #endif
+ #ifndef ELF_TARGET_FORMAT
+ #define ELF_TARGET_FORMAT	"elf64-alpha"
+ #endif
+ 
  #define TARGET_FORMAT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour	\
  		       ? "ecoff-littlealpha"				\
  		       : OUTPUT_FLAVOR == bfd_target_elf_flavour	\
! 		       ? ELF_TARGET_FORMAT				\
  		       : OUTPUT_FLAVOR == bfd_target_evax_flavour	\
  		       ? "vms-alpha"					\
  		       : "unknown-format")
*** binutils-2.12.90.0.14/ld/emulparams/elf_i386_fbsd.sh.bak	Thu Mar  7 20:52:39 2002
--- binutils-2.12.90.0.14/ld/emulparams/elf_i386_fbsd.sh	Wed Jul  3 00:21:08 2002
***************
*** 1,2 ****
--- 1,3 ----
  . ${srcdir}/emulparams/elf_i386.sh
  . ${srcdir}/emulparams/elf_fbsd.sh
+ OUTPUT_FORMAT="elf32-i386-freebsd"
*** binutils-2.12.90.0.14/ld/emulparams/elf64alpha_fbsd.sh.bak	Thu Mar  7 20:52:39 2002
--- binutils-2.12.90.0.14/ld/emulparams/elf64alpha_fbsd.sh	Wed Jul  3 00:21:08 2002
***************
*** 1,2 ****
--- 1,3 ----
  . ${srcdir}/emulparams/elf64alpha.sh
  . ${srcdir}/emulparams/elf_fbsd.sh
+ OUTPUT_FORMAT="elf64-alpha-freebsd"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]