summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog20
-rw-r--r--bfd/Makefile.am5
-rw-r--r--bfd/Makefile.in5
-rw-r--r--bfd/config.bfd5
-rwxr-xr-xbfd/configure1
-rw-r--r--bfd/configure.in1
-rw-r--r--bfd/elf-m10300.c4
-rw-r--r--bfd/elf32-am33lin.c35
-rw-r--r--bfd/targets.c2
9 files changed, 78 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1d42a4493b7..cfe5d3c68a1 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,23 @@
+2003-07-10 Alexandre Oliva <aoliva@redhat.com>
+
+ 2001-09-12 Alexandre Oliva <aoliva@redhat.com>
+ * elf32-am33lin.c (ELF_MACHINE_CODE): Redefine to EM_MN10300.
+ (ELF_MACHINE_ALT1): Define to EM_CYGNUS_MN10300.
+ 2001-06-02 Nick Clifton <nickc@cambridge.redhat.com>
+ * elf32-am33lin.c: Rename global functions.
+ 2001-05-09 Alexandre Oliva <aoliva@redhat.com>
+ * config.bfd (am33_2.0, am33_2.0-*-linux*): Added.
+ * configure.in (bfd_elf32_am33lin_vec): Added.
+ * Makefile.am (BFD32_BACKENDS): Added elf32-am33lin.lo.
+ (elf32-am33lin.lo): List dependencies.
+ * aclocal.m4, configure, Makefile.in: Rebuilt.
+ * elf-m10300.c (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME,
+ ELF_ARCH, ELF_MACHINE_CODE, ELF_MAXPAGESIZE): Define only if
+ ELF_ARCH was not defined before.
+ (elf_symbol_leading_char): Define if not defined.
+ * elf32-am33lin.c: Override the definitions above.
+ * targets.c (bfd_elf32_am33lin_vec): New.
+
2003-07-09 Alexandre Oliva <aoliva@redhat.com>
2002-12-12 Alexandre Oliva <aoliva@redhat.com>
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 6240f35c251..0c14796e091 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -372,6 +372,7 @@ BFD32_BACKENDS_CFILES = \
ecofflink.c \
efi-app-ia32.c \
elf.c \
+ elf32-am33lin.lo \
elf32-arc.c \
elfarm-oabi.c \
elfarm-nabi.c \
@@ -1123,6 +1124,10 @@ efi-app-ia32.lo: efi-app-ia32.c $(INCDIR)/filenames.h \
elf.lo: elf.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/libiberty.h
+elf32-am33lin.lo: elf32-am33lin.c $(INCDIR)/filenames.h elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/reloc-macros.h \
+ elf32-target.h elf-m10300.c
elf32-arc.lo: elf32-arc.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index bfa525a878f..8021b61476f 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -500,6 +500,7 @@ BFD32_BACKENDS_CFILES = \
ecofflink.c \
efi-app-ia32.c \
elf.c \
+ elf32-am33lin.lo \
elf32-arc.c \
elfarm-oabi.c \
elfarm-nabi.c \
@@ -1656,6 +1657,10 @@ efi-app-ia32.lo: efi-app-ia32.c $(INCDIR)/filenames.h \
elf.lo: elf.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
$(INCDIR)/elf/external.h $(INCDIR)/libiberty.h
+elf32-am33lin.lo: elf32-am33lin.c $(INCDIR)/filenames.h elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/reloc-macros.h \
+ elf32-target.h elf-m10300.c
elf32-arc.lo: elf32-arc.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/bfd/config.bfd b/bfd/config.bfd
index e1aa6b74cba..f0ae64211db 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -60,6 +60,7 @@ x86_64) targ_archs=bfd_i386_arch ;;
xscale*) targ_archs=bfd_arm_arch ;;
xtensa*) targ_archs=bfd_xtensa_arch ;;
z8k*) targ_archs=bfd_z8k_arch ;;
+am33_2.0) targ_archs=bfd_mn10300_arch ;;
*) targ_archs=bfd_${targ_cpu}_arch ;;
esac
@@ -134,6 +135,9 @@ case "${targ}" in
;;
#endif /* BFD64 */
+ am33_2.0-*-linux*)
+ targ_defvec=bfd_elf32_am33lin_vec
+ ;;
arc-*-elf*)
targ_defvec=bfd_elf32_littlearc_vec
targ_selvecs=bfd_elf32_bigarc_vec
@@ -830,6 +834,7 @@ case "${targ}" in
mn10300-*-*)
targ_defvec=bfd_elf32_mn10300_vec
+ targ_underscore=yes
;;
msp430-*-*)
diff --git a/bfd/configure b/bfd/configure
index 3b37998b4c2..635879e3b59 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -6106,6 +6106,7 @@ do
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_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" ;;
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
diff --git a/bfd/configure.in b/bfd/configure.in
index 379b3ac5577..ebb9896d5ed 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -568,6 +568,7 @@ do
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_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" ;;
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index 7591833589d..1c243dac236 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -4842,12 +4842,14 @@ _bfd_mn10300_elf_finish_dynamic_sections (output_bfd, info)
return TRUE;
}
+#ifndef ELF_ARCH
#define TARGET_LITTLE_SYM bfd_elf32_mn10300_vec
#define TARGET_LITTLE_NAME "elf32-mn10300"
#define ELF_ARCH bfd_arch_mn10300
#define ELF_MACHINE_CODE EM_MN10300
#define ELF_MACHINE_ALT1 EM_CYGNUS_MN10300
#define ELF_MAXPAGESIZE 0x1000
+#endif
#define elf_info_to_howto mn10300_info_to_howto
#define elf_info_to_howto_rel 0
@@ -4864,7 +4866,9 @@ _bfd_mn10300_elf_finish_dynamic_sections (output_bfd, info)
#define bfd_elf32_bfd_link_hash_table_free \
elf32_mn10300_link_hash_table_free
+#ifndef elf_symbol_leading_char
#define elf_symbol_leading_char '_'
+#endif
/* So we can set bits in e_flags. */
#define elf_backend_final_write_processing \
diff --git a/bfd/elf32-am33lin.c b/bfd/elf32-am33lin.c
new file mode 100644
index 00000000000..4cc2230f3fb
--- /dev/null
+++ b/bfd/elf32-am33lin.c
@@ -0,0 +1,35 @@
+/* Matsushita AM33/2.0 support for 32-bit GNU/Linux ELF
+ Copyright 2001
+ 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 elf_symbol_leading_char 0
+
+#define TARGET_LITTLE_SYM bfd_elf32_am33lin_vec
+#define TARGET_LITTLE_NAME "elf32-am33lin"
+#define ELF_ARCH bfd_arch_mn10300
+#define ELF_MACHINE_CODE EM_MN10300
+#define ELF_MACHINE_ALT1 EM_CYGNUS_MN10300
+#define ELF_MAXPAGESIZE 0x1000
+
+/* Rename global functions. */
+#define _bfd_mn10300_elf_merge_private_bfd_data _bfd_am33_elf_merge_private_bfd_data
+#define _bfd_mn10300_elf_object_p _bfd_am33_elf_object_p
+#define _bfd_mn10300_elf_final_write_processing _bfd_am33_elf_final_write_processing
+
+#include "elf-m10300.c"
diff --git a/bfd/targets.c b/bfd/targets.c
index f903cc327bb..731619d77a1 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -743,6 +743,7 @@ extern const bfd_target ptrace_core_vec;
extern const bfd_target sco5_core_vec;
extern const bfd_target trad_core_vec;
+extern const bfd_target bfd_elf32_am33lin_vec;
static const bfd_target * const _bfd_target_vector[] = {
#ifdef SELECT_VECS
@@ -1061,6 +1062,7 @@ static const bfd_target * const _bfd_target_vector[] = {
&w65_vec,
&we32kcoff_vec,
&z8kcoff_vec,
+ &bfd_elf32_am33lin_vec,
#endif /* not SELECT_VECS */
/* Always support S-records, for convenience. */