elf32 support for IA64

Steve Ellcey sje@cup.hp.com
Mon Oct 30 10:07:00 GMT 2000


This is my second patch for elf32 support on IA64.  It consists strictly
of code changes and does not introduce any new files.  This and the
earlier change are all my bfd changes, I have one more patch I am
sending that has gas changes.

Steve Ellcey
sje@cup.hp.com


*** src.orig/bfd/ChangeLog	Fri Oct 27 10:01:58 2000
--- src/bfd/ChangeLog	Mon Oct 30 09:47:45 2000
***************
*** 1,3 ****
--- 1,12 ----
+ Mon Oct 30 08:19:10 PST 2000  Steve Ellcey <sje@cup.hp.com>
+ 
+         * bfd-in2.h (bfd_mach_ia64_elf64, bfd_mach_ia64_elf32) Add defines
+         to differentiate elf32 and elf64 on ia64.
+         * config.bfd: Add target for "ia64*-*-hpux*".
+         * configure.in: Add bfd_elf32_ia64_big_vec to selvecs switch.
+         * cpu-ia64.c (bfd_ia64_elf32_arch) Add elf32 arch info structure.
+         * targets.c: Add bfd_target bfd_elf32_ia64_big_vec.
+ 
  2000-10-20  Jakub Jelinek  <jakub@redhat.com>
  
  	* elf32-sparc.c (elf32_sparc_merge_private_bfd_data,
*** src.orig/bfd/configure.in	Fri Oct 27 10:01:59 2000
--- src/bfd/configure.in	Fri Oct 27 13:32:17 2000
***************
*** 484,489 ****
--- 484,490 ----
  				target64=true ;;
      bfd_elf64_ia64_big_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"
  				target64=true ;;
+     bfd_elf32_ia64_big_vec)	tb="$tb elf32-ia64.lo elf32.lo $elf" ;;
      bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
      bfd_elf32_littlearc_vec)	tb="$tb elf32-arc.lo elf32.lo $elf" ;;
      bfd_elf32_littlearm_vec)	tb="$tb elfarm-nabi.lo elf32.lo $elf" ;;
*** src.orig/bfd/bfd-in2.h	Fri Oct 27 10:01:59 2000
--- src/bfd/bfd-in2.h	Fri Oct 27 13:36:33 2000
***************
*** 1497,1502 ****
--- 1497,1504 ----
  #define bfd_mach_fr30          0x46523330
    bfd_arch_mcore,
    bfd_arch_ia64,      /* HP/Intel ia64 */
+ #define bfd_mach_ia64_elf64    0
+ #define bfd_mach_ia64_elf32    1
    bfd_arch_pj,
    bfd_arch_avr,       /* Atmel AVR microcontrollers */
  #define bfd_mach_avr1          1
*** src.orig/bfd/config.bfd	Fri Oct 27 10:01:59 2000
--- src/bfd/config.bfd	Fri Oct 27 13:38:50 2000
***************
*** 86,91 ****
--- 86,95 ----
      targ_defvec=bfd_elf64_ia64_little_vec
      targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
      ;;
+   ia64*-*-hpux*)
+     targ_defvec=bfd_elf64_ia64_big_vec
+     targ_selvecs="bfd_elf32_ia64_big_vec"
+     ;;
    sparc64-*-netbsd*)
      targ_defvec=bfd_elf64_sparc_vec
      targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
*** src.orig/bfd/cpu-ia64.c	Fri Oct 27 10:01:59 2000
--- src/bfd/cpu-ia64.c	Fri Oct 27 13:41:14 2000
***************
*** 23,28 ****
--- 23,44 ----
  #include "sysdep.h"
  #include "libbfd.h"
  
+ const bfd_arch_info_type bfd_ia64_elf32_arch =
+   {
+     64,	/* 64 bits in a word */
+     32,	/* 64 bits in an address */
+     8,	/* 8 bits in a byte */
+     bfd_arch_ia64,
+     bfd_mach_ia64_elf32,
+     "ia64",
+     "ia64-elf32",
+     3,	/* log2 of section alignment */
+     true, /* the one and only */
+     bfd_default_compatible, 
+     bfd_default_scan ,
+     0,
+   };
+ 
  const bfd_arch_info_type bfd_ia64_arch =
    {
      64,	/* 64 bits in a word */
***************
*** 29,42 ****
      64,	/* 64 bits in an address */
      8,	/* 8 bits in a byte */
      bfd_arch_ia64,
!     0,	/* only 1 machine */
      "ia64",
!     "ia64",
      3,	/* log2 of section alignment */
      true, /* the one and only */
      bfd_default_compatible, 
      bfd_default_scan ,
!     0,
    };
  
  #include "cpu-ia64-opc.c"
--- 45,58 ----
      64,	/* 64 bits in an address */
      8,	/* 8 bits in a byte */
      bfd_arch_ia64,
!     bfd_mach_ia64_elf64,
      "ia64",
!     "ia64-elf64",
      3,	/* log2 of section alignment */
      true, /* the one and only */
      bfd_default_compatible, 
      bfd_default_scan ,
!     &bfd_ia64_elf32_arch,
    };
  
  #include "cpu-ia64-opc.c"
*** src.orig/bfd/targets.c	Fri Oct 27 10:02:01 2000
--- src/bfd/targets.c	Fri Oct 27 13:42:14 2000
***************
*** 512,517 ****
--- 512,518 ----
  extern const bfd_target bfd_elf64_hppa_vec;
  extern const bfd_target bfd_elf64_ia64_little_vec;
  extern const bfd_target bfd_elf64_ia64_big_vec;
+ extern const bfd_target bfd_elf32_ia64_big_vec;
  extern const bfd_target bfd_elf32_avr_vec;
  extern const bfd_target bfd_elf32_bigarc_vec;
  extern const bfd_target bfd_elf32_bigarm_vec;


More information about the Binutils mailing list