2007-03-07 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 7 Mar 2007 21:35:28 +0000 (21:35 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 7 Mar 2007 21:35:28 +0000 (21:35 +0000)
* config.bfd (x86_64-*-freebsd*): Add bfd_efi_app_x86_64_vec.
(x86_64-*-kfreebsd*-gnu): Likewise.
(x86_64-*-netbsd*): Likewise.
(x86_64-*-openbsd*): Likewise.
(x86_64-*-linux-*): Likewise.

* configure.in: Support bfd_efi_app_x86_64_vec.
* configure: Regenerated.

* efi-app-x86_64.c: New file.

* targets.c (bfd_efi_app_x86_64_vec): New.
(_bfd_target_vector): Add bfd_efi_app_x86_64_vec.

bfd/ChangeLog
bfd/config.bfd
bfd/configure
bfd/configure.in
bfd/efi-app-x86_64.c [new file with mode: 0644]
bfd/targets.c

index 920e91ceb38318758f6d9d39c13733882b006117..7252fde03f664e7f97e13b99e59345ff8c8f6da2 100644 (file)
@@ -1,3 +1,19 @@
+2007-03-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config.bfd (x86_64-*-freebsd*): Add bfd_efi_app_x86_64_vec.
+       (x86_64-*-kfreebsd*-gnu): Likewise.
+       (x86_64-*-netbsd*): Likewise.
+       (x86_64-*-openbsd*): Likewise.
+       (x86_64-*-linux-*): Likewise.
+
+       * configure.in: Support bfd_efi_app_x86_64_vec.
+       * configure: Regenerated.
+
+       * efi-app-x86_64.c: New file.
+
+       * targets.c (bfd_efi_app_x86_64_vec): New.
+       (_bfd_target_vector): Add bfd_efi_app_x86_64_vec.
+
 2007-03-07  Kai Tietz   <kai.tietz@onevision.com>
 
        * reloc.c (bfd_generic_get_relocated_section_contents): Remove
index 8d9e9f6c90b2356ed4668d3a45ced91b97135d2b..0998139b476a1980bc225eb448496abcb3cd1750 100644 (file)
@@ -577,17 +577,17 @@ case "${targ}" in
     ;;
   x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
     targ_defvec=bfd_elf64_x86_64_freebsd_vec
-    targ_selvecs="bfd_elf32_i386_freebsd_vec i386coff_vec bfd_efi_app_ia32_vec bfd_elf32_i386_vec bfd_elf64_x86_64_vec"
+    targ_selvecs="bfd_elf32_i386_freebsd_vec i386coff_vec bfd_efi_app_ia32_vec bfd_efi_app_x86_64_vec bfd_elf32_i386_vec bfd_elf64_x86_64_vec"
     want64=true
     ;;
   x86_64-*-netbsd* | x86_64-*-openbsd*)
     targ_defvec=bfd_elf64_x86_64_vec
-    targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
+    targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec bfd_efi_app_x86_64_vec"
     want64=true
     ;;
   x86_64-*-linux-*)
     targ_defvec=bfd_elf64_x86_64_vec
-    targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
+    targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec bfd_efi_app_x86_64_vec"
     want64=true
     ;;
   x86_64-*-mingw*)
index 00f656925adf5d6ddf2e2e55b2e18dd350277534..31aee53b3b551b1fd9f041a59888c2a5e33d74b5 100755 (executable)
@@ -10828,6 +10828,7 @@ do
     b_out_vec_big_host)                tb="$tb bout.lo aout32.lo" ;;
     b_out_vec_little_host)     tb="$tb bout.lo aout32.lo" ;;
     bfd_efi_app_ia32_vec)      tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;;
+    bfd_efi_app_x86_64_vec)    tb="$tb efi-app-x86_64.lo pex64igen.lo cofflink.lo" ;target_size=64;;
     bfd_efi_app_ia64_vec)      tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
     bfd_elf32_am33lin_vec)     tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
     bfd_elf32_avr_vec)         tb="$tb elf32-avr.lo elf32.lo $elf" ;;
index 9251e6494bc43469657206119a7c888189b827dc..ad203f40a3e267be8ab53f9ee5fbcf272aa9e5aa 100644 (file)
@@ -603,6 +603,7 @@ do
     b_out_vec_big_host)                tb="$tb bout.lo aout32.lo" ;;
     b_out_vec_little_host)     tb="$tb bout.lo aout32.lo" ;;
     bfd_efi_app_ia32_vec)      tb="$tb efi-app-ia32.lo peigen.lo cofflink.lo" ;;
+    bfd_efi_app_x86_64_vec)    tb="$tb efi-app-x86_64.lo pex64igen.lo cofflink.lo" ;target_size=64;;
     bfd_efi_app_ia64_vec)      tb="$tb efi-app-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
     bfd_elf32_am33lin_vec)     tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
     bfd_elf32_avr_vec)         tb="$tb elf32-avr.lo elf32.lo $elf" ;;
diff --git a/bfd/efi-app-x86_64.c b/bfd/efi-app-x86_64.c
new file mode 100644 (file)
index 0000000..870bbcc
--- /dev/null
@@ -0,0 +1,34 @@
+/* BFD back-end for Intel64 UEFI application files.
+   Copyright 2007 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+#include "bfd.h"
+#include "sysdep.h"
+
+#define TARGET_SYM bfd_efi_app_x86_64_vec
+#define TARGET_NAME "efi-app-x86_64"
+#define COFF_IMAGE_WITH_PE
+#define COFF_WITH_PE
+#define COFF_WITH_pep
+#define PCRELOFFSET TRUE
+#define TARGET_UNDERSCORE '_'
+#define COFF_LONG_SECTION_NAMES
+#define PEI_TARGET_SUBSYSTEM   IMAGE_SUBSYSTEM_EFI_APPLICATION
+#define PEI_FORCE_MINIMUM_ALIGNMENT
+
+#include "coff-x86_64.c"
index ae4d4bf45163799f23d2ef81954acc6f93a91f5f..68cf553aa47d1a3e762e6231dedc1c2f9d97938d 100644 (file)
@@ -557,6 +557,7 @@ extern const bfd_target armpei_little_vec;
 extern const bfd_target b_out_vec_big_host;
 extern const bfd_target b_out_vec_little_host;
 extern const bfd_target bfd_efi_app_ia32_vec;
+extern const bfd_target bfd_efi_app_x86_64_vec;
 extern const bfd_target bfd_efi_app_ia64_vec;
 extern const bfd_target bfd_elf32_avr_vec;
 extern const bfd_target bfd_elf32_bfin_vec;
@@ -873,6 +874,7 @@ static const bfd_target * const _bfd_target_vector[] =
        &b_out_vec_big_host,
        &b_out_vec_little_host,
        &bfd_efi_app_ia32_vec,
+       &bfd_efi_app_x86_64_vec,
 #ifdef BFD64
        &bfd_efi_app_ia64_vec,
 #endif