Add little endian PowerPC support.
authorMichael Meissner <gnu@the-meissners.org>
Tue, 9 May 1995 21:07:06 +0000 (21:07 +0000)
committerMichael Meissner <gnu@the-meissners.org>
Tue, 9 May 1995 21:07:06 +0000 (21:07 +0000)
bfd/ChangeLog
bfd/config.bfd
bfd/configure.in
bfd/targets.c
gdb/ChangeLog
gdb/config/powerpc/.Sanitize
gdb/config/powerpc/ppcle-eabi.mt [new file with mode: 0644]
gdb/config/powerpc/tm-ppcle-eabi.h [new file with mode: 0644]
gdb/configure.in

index 1c1ac51..363a9cb 100644 (file)
@@ -1,3 +1,26 @@
+Tue May  9 17:01:38 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * config.bfd: Add little endian PowerPC support.
+       * configure.in: Ditto.
+       * targets.c: Ditto.
+       * config/ppcle-elf.mt: New file, for little endian PowerPC
+       support.
+       * config/ppc-elf.mt: Add little endian powerpc to the BFD
+       selection vectors.
+       * elf32-ppc.c (ppc_elf_merge_private_bfd_data): Complain if
+       linking a different endian object than we expect.
+       (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define, to provide little
+       endian support.
+
+Tue May  2 16:32:24 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+       * config.bfd (hppa*-*-lites*): Treat just like hppa*-*-*elf*.
+
+Tue Apr 25 19:38:43 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+       * coffgen.c (make_a_section_from_file): Initialize lma same as
+       vma.
+
 Tue Apr 25 11:03:21 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
 
        * hosts/std-host.h: #include ansidecl.h 'cause PTR is used in
index fb3437e..7719fc6 100755 (executable)
@@ -42,6 +42,7 @@ case "${canon}" in
   rce-*-aout)          bfd_name=rce-aout ;;
 # end-sanitize-rce
   hppa*-*-*elf*)       bfd_name=hppa-elf ;;
+  hppa*-*-lites*)      bfd_name=hppa-elf ;;
   hppa*-*-bsd*)                bfd_name=hppabsd ;;
   hppa*-*-hpux*)       bfd_name=hppahpux ;;
   hppa*-*-hiux*)       bfd_name=hppahpux ;;
@@ -60,8 +61,10 @@ case "${canon}" in
   i[345]86-*-freebsd*) bfd_name=i386-bsd strip_underscore=yes ;;
   i[345]86-*-netbsd*)  bfd_name=i386-nbsd strip_underscore=yes ;;
   i[345]86-*-netware*) bfd_name=i386-nlm ;;
+  i[345]86-*-linuxaout*) bfd_name=i386-laout strip_underscore=yes ;;
   i[345]86-*-linux*)   bfd_name=i386-linux strip_underscore=yes ;;
   i[345]86-*-lynxos*)  bfd_name=i386-lynx ;;
+  i[345]86-*-gnuelf*)  bfd_name=i386-gelf strip_underscore=yes ;;
   i[345]86-*-gnu*)     bfd_name=i386-gnu strip_underscore=yes ;;
   i[345]86-*-mach*)    bfd_name=i386-mach3 strip_underscore=yes ;;
   i[345]86-*-osf1mk*)  bfd_name=i386-mach3 strip_underscore=yes ;;
@@ -82,6 +85,7 @@ case "${canon}" in
   m68*-est-coff)       bfd_name=m68k-coff ;;
   m68*-*-aout*)                bfd_name=m68k-0aout strip_underscore=yes ;;
   m68*-*-coff*)                bfd_name=m68k-coff ;;
+  m68*-*-elf*)         bfd_name=m68k-elf ;;
   m68*-*-hpux*)                bfd_name=hp300hpux strip_underscore=yes ;;
   m68*-*-lynxos*)      bfd_name=m68k-lynx ;;
   m68*-*-netbsd*)      bfd_name=m68k-nbsd strip_underscore=yes ;;
@@ -122,6 +126,9 @@ case "${canon}" in
   powerpc-*-sysv4*)    bfd_name=ppc-elf ;;
   powerpc-*-eabi*)     bfd_name=ppc-elf ;;
   powerpc-*-netware*)  bfd_name=ppc-nlm ;;
+  powerpcle-*-elf*)    bfd_name=ppcle-elf ;;
+  powerpcle-*-sysv4*)  bfd_name=ppcle-elf ;;
+  powerpcle-*-eabi*)   bfd_name=ppcle-elf ;;
   rs6000-*-*)          bfd_name=rs6000 ;;
   sparc-*-lynxos*)     bfd_name=sparc-lynx ;;
   sparc-*-netbsd*)     bfd_name=sparc-nbsd strip_underscore=yes;;
index b8c8940..186f2e2 100644 (file)
@@ -143,16 +143,21 @@ do
     apollocoff_vec)            tb="$tb coff-apollo.o" ;;
     b_out_vec_big_host)                tb="$tb bout.o aout32.o stab-syms.o" ;;
     b_out_vec_little_host)     tb="$tb bout.o aout32.o stab-syms.o" ;;
+# start-sanitize-arc
+    bfd_elf32_littlearc_vec)   tb="$tb elf32-arc.o elf32.o elf.o" ;;
+    bfd_elf32_bigarc_vec)      tb="$tb elf32-arc.o elf32.o elf.o" ;;
+# end-sanitize-arc
     bfd_elf32_big_generic_vec)         tb="$tb elf32-gen.o elf32.o elf.o" ;;
-    bfd_elf32_bigmips_vec)     tb="$tb elf32-mips.o elf32.o elf.o ecoff.o ecofflink.o" ;;
+    bfd_elf32_bigmips_vec)     tb="$tb elf32-mips.o elf32.o elf.o ecofflink.o" ;;
     bfd_elf32_hppa_vec)                tb="$tb elf32-hppa.o elf32.o elf.o" ;;
     bfd_elf32_i386_vec)                tb="$tb elf32-i386.o elf32.o elf.o" ;;
     bfd_elf32_i860_vec)                tb="$tb elf32-i860.o elf32.o elf.o" ;;
     bfd_elf32_little_generic_vec) tb="$tb elf32-gen.o elf32.o elf.o" ;;
-    bfd_elf32_littlemips_vec)  tb="$tb elf32-mips.o elf32.o elf.o ecoff.o ecofflink.o" ;;
+    bfd_elf32_littlemips_vec)  tb="$tb elf32-mips.o elf32.o elf.o ecofflink.o" ;;
     bfd_elf32_m68k_vec)                tb="$tb elf32-m68k.o elf32.o elf.o" ;;
     bfd_elf32_m88k_vec)                tb="$tb elf32-m88k.o elf32.o elf.o" ;;
     bfd_elf32_powerpc_vec)     tb="$tb elf32-ppc.o elf32.o elf.o" ;;
+    bfd_elf32_powerpcle_vec)   tb="$tb elf32-ppc.o elf32.o elf.o" ;;
     bfd_elf32_sparc_vec)       tb="$tb elf32-sparc.o elf32.o elf.o" ;;
     bfd_elf64_big_generic_vec)         tb="$tb elf64-gen.o elf64.o elf.o"
                                target64=true ;;
@@ -176,6 +181,7 @@ do
     i386bsd_vec)               tb="$tb i386bsd.o aout32.o stab-syms.o" ;;
     i386dynix_vec)             tb="$tb i386dynix.o aout32.o stab-syms.o" ;;
     i386coff_vec)              tb="$tb coff-i386.o cofflink.o" ;;
+    i386msdos_vec)             tb="$tb i386msdos.o" ;;
     i386linux_vec)             tb="$tb i386linux.o aout32.o stab-syms.o" ;;
     i386lynx_aout_vec)         tb="$tb i386lynx.o lynx-core.o aout32.o stab-syms.o" ;;
     i386lynx_coff_vec)         tb="$tb cf-i386lynx.o cofflink.o lynx-core.o stab-syms.o" ;;
@@ -217,6 +223,7 @@ do
     tekhex_vec)                        tb="$tb tekhex.o" ;;
     we32kcoff_vec)             tb="$tb coff-we32k.o" ;;
     z8kcoff_vec)               tb="$tb coff-z8k.o reloc16.o" ;;
+    w65_vec)                   tb="$tb coff-w65.o reloc16.o" ;;
 
     "")                        ;;
     *) echo "*** unknown target vector $vec" 1>&2; exit 1 ;;
@@ -277,11 +284,11 @@ echo BFD_MACHINES=${bfd_machines} >> Makefile.2
 
 test -n "$DEFAULT_VECTOR" && defvec="$DEFAULT_VECTOR"
 
-echo "TDEFAULTS = \
-${defvec+-DDEFAULT_VECTOR=$defvec} \
-${selvecs+-DSELECT_VECS='$selvecs'} \
-${selarchs+-DSELECT_ARCHITECTURES='$selarchs'}" \
-  >> Makefile.2
+tdefaults="TDEFAULTS ="
+test -n "${defvec}" && tdefaults="${tdefaults} -DDEFAULT_VECTOR=${defvec}"
+test -n "${selvecs}" && tdefaults="${tdefaults} -DSELECT_VECS='${selvecs}'"
+test -n "${selarchs}" && tdefaults="${tdefaults} -DSELECT_ARCHITECTURES='${selarchs}'"
+echo "${tdefaults}" >> Makefile.2
 
 cat Makefile.tmp >> Makefile.2
 rm -f Makefile.tmp
index b3103d0..8841e82 100644 (file)
@@ -263,14 +263,21 @@ The general target vector.
 .  {* Entry points to copy private data.  *}
 .#define BFD_JUMP_TABLE_COPY(NAME)\
 .CAT(NAME,_bfd_copy_private_bfd_data),\
-.CAT(NAME,_bfd_copy_private_section_data)
+.CAT(NAME,_bfd_merge_private_bfd_data),\
+.CAT(NAME,_bfd_copy_private_section_data),\
+.CAT(NAME,_bfd_set_private_flags)
 .  {* Called to copy BFD general private data from one object file
 .     to another.  *}
 .  boolean      (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *));
+.  {* Called to merge BFD general private data from one object file
+.     to a common output file when linking.  *}
+.  boolean      (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *));
 .  {* Called to copy BFD private section data from one object file
 .     to another.  *}
 .  boolean       (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr,
 .                                                       bfd *, sec_ptr));
+.  {* Called to set private backend flags *}
+.  boolean      (*_bfd_set_private_flags) PARAMS ((bfd *, flagword));
 .
 .  {* Core file entry points.  *}
 .#define BFD_JUMP_TABLE_CORE(NAME)\
@@ -446,6 +453,7 @@ extern const bfd_target bfd_elf32_littlemips_vec;
 extern const bfd_target bfd_elf32_m68k_vec;
 extern const bfd_target bfd_elf32_m88k_vec;
 extern const bfd_target bfd_elf32_powerpc_vec;
+extern const bfd_target bfd_elf32_powerpcle_vec;
 extern const bfd_target bfd_elf32_sparc_vec;
 extern const bfd_target bfd_elf64_big_generic_vec;
 extern const bfd_target bfd_elf64_little_generic_vec;
index b6e86b8..d4a5cf8 100644 (file)
@@ -1,3 +1,10 @@
+Tue May  9 16:58:50 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * configure.in: Add little endian PowerPC support.
+       * config/powerpc/ppcle-eabi.mt: New file for little endian PowerPC
+       support.
+       * config/powerpc/tm-ppcle-eabi.h: ditto.
+
 Mon May  8 12:11:38 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
 
        * nlm/configure.in (gdb_host, gdb_host_cpu, gdb_target): Removed.
index cec908a..d4c3b81 100644 (file)
@@ -25,7 +25,9 @@ gdbserve.mt
 ppc-nw.mt
 tm-ppc-nw.h
 tm-ppc-eabi.h
+tm-ppcle-eabi.h
 ppc-eabi.mt
+ppcle-eabi.mt
 
 Things-to-lose:
 
diff --git a/gdb/config/powerpc/ppcle-eabi.mt b/gdb/config/powerpc/ppcle-eabi.mt
new file mode 100644 (file)
index 0000000..27be44f
--- /dev/null
@@ -0,0 +1,3 @@
+# Target: PowerPC running eabi in little endian mode
+TDEPFILES= rs6000-tdep.o
+TM_FILE= tm-ppcle-eabi.h
diff --git a/gdb/config/powerpc/tm-ppcle-eabi.h b/gdb/config/powerpc/tm-ppcle-eabi.h
new file mode 100644 (file)
index 0000000..0ad4bdc
--- /dev/null
@@ -0,0 +1,30 @@
+/* Macro definitions for Power PC running embedded ABI
+   in little endian mode.
+   Copyright 1995 Free Software Foundation, Inc.
+
+This file is part of GDB.
+
+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., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifndef TM_PPCLE_EABI_H
+#define TM_PPCLE_EABI_H
+
+/* Use normal ppc-eabi definitions */
+#include "powerpc/tm-ppc-eabi.h"
+
+#undef  TARGET_BYTE_ORDER
+#define TARGET_BYTE_ORDER      LITTLE_ENDIAN
+
+#endif /* TM_PPCLE_EABI_H */
index cf76597..7d50351 100644 (file)
@@ -22,6 +22,7 @@ m68*)                 gdb_host_cpu=m68k ;;
 m88*)                  gdb_host_cpu=m88k ;;
 np1)                   gdb_host_cpu=gould ;;
 pyramid)               gdb_host_cpu=pyr ;;
+powerpc*)              gdb_host_cpu=powerpc ;;
 *)                     gdb_host_cpu=$host_cpu ;;
 
 esac
@@ -167,6 +168,7 @@ m68*)                       gdb_target_cpu=m68k ;;
 m88*)                  gdb_target_cpu=m88k ;;
 mips*)                 gdb_target_cpu=mips ;;
 np1)                   gdb_target_cpu=gould ;;
+powerpc*)              gdb_target_cpu=powerpc ;;
 pn)                    gdb_target_cpu=gould ;;
 pyramid)               gdb_target_cpu=pyr ;;
 sparclite*)            gdb_target_cpu=sparc
@@ -325,6 +327,9 @@ powerpc-*-netware*) gdb_target=ppc-nw
 powerpc-*-eabi*)       gdb_target=ppc-eabi
                        configdirs="${configdirs}" ;;
 
+powerpcle-*-eabi*)     gdb_target=ppcle-eabi
+                       configdirs="${configdirs}" ;;
+
 pyramid-*-*)           gdb_target=pyramid ;;
 
 rs6000-*-lynxos*)      gdb_target=rs6000lynx ;;