aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/aix5ppc-core.c56
-rw-r--r--bfd/archures.c4
-rw-r--r--bfd/bfd-in2.h34
-rw-r--r--bfd/config.bfd7
-rwxr-xr-xbfd/configure2
-rw-r--r--bfd/configure.in2
-rw-r--r--bfd/libbfd.h22
-rw-r--r--bfd/reloc.c60
-rw-r--r--bfd/targets.c4
9 files changed, 144 insertions, 47 deletions
diff --git a/bfd/aix5ppc-core.c b/bfd/aix5ppc-core.c
index 0dc977a..89b6d8a 100644
--- a/bfd/aix5ppc-core.c
+++ b/bfd/aix5ppc-core.c
@@ -2,7 +2,7 @@
Copyright 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
Written by Tom Rix
- Contributed by Redhat.
+ Contributed by Red Hat Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -28,14 +28,10 @@
#include "sysdep.h"
#include "libbfd.h"
-const bfd_target *xcoff64_core_p
- PARAMS ((bfd *));
-bfd_boolean xcoff64_core_file_matches_executable_p
- PARAMS ((bfd *, bfd *));
-char *xcoff64_core_file_failing_command
- PARAMS ((bfd *));
-int xcoff64_core_file_failing_signal
- PARAMS ((bfd *));
+const bfd_target *xcoff64_core_p (bfd *);
+bfd_boolean xcoff64_core_file_matches_executable_p (bfd *, bfd *);
+char *xcoff64_core_file_failing_command (bfd *);
+int xcoff64_core_file_failing_signal (bfd *);
/* Aix 5.1 system include file. */
@@ -50,8 +46,7 @@ int xcoff64_core_file_failing_signal
((bfd_signed_vma)(v) < 0 || (bfd_signed_vma)(v) > (bfd_signed_vma)(s).st_size)
const bfd_target *
-xcoff64_core_p (abfd)
- bfd *abfd;
+xcoff64_core_p (bfd *abfd)
{
struct core_dumpxx core, *new_core_hdr;
struct stat statbuf;
@@ -111,8 +106,7 @@ xcoff64_core_p (abfd)
return return_value;
}
- new_core_hdr = (struct core_dumpxx *)
- bfd_zalloc (abfd, sizeof (struct core_dumpxx));
+ new_core_hdr = bfd_zalloc (abfd, sizeof (struct core_dumpxx));
if (NULL == new_core_hdr)
return return_value;
@@ -232,9 +226,7 @@ xcoff64_core_p (abfd)
/* Return `TRUE' if given core is from the given executable. */
bfd_boolean
-xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
- bfd *core_bfd;
- bfd *exec_bfd;
+xcoff64_core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd)
{
struct core_dumpxx core;
char *path, *s;
@@ -298,8 +290,7 @@ xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
}
char *
-xcoff64_core_file_failing_command (abfd)
- bfd *abfd;
+xcoff64_core_file_failing_command (bfd *abfd)
{
struct core_dumpxx *c = core_hdr (abfd);
char *return_value = 0;
@@ -311,8 +302,7 @@ xcoff64_core_file_failing_command (abfd)
}
int
-xcoff64_core_file_failing_signal (abfd)
- bfd *abfd;
+xcoff64_core_file_failing_signal (bfd *abfd)
{
struct core_dumpxx *c = core_hdr (abfd);
int return_value = 0;
@@ -325,41 +315,33 @@ xcoff64_core_file_failing_signal (abfd)
#else /* AIX_5_CORE */
-const bfd_target *xcoff64_core_p
- PARAMS ((bfd *));
-bfd_boolean xcoff64_core_file_matches_executable_p
- PARAMS ((bfd *, bfd *));
-char *xcoff64_core_file_failing_command
- PARAMS ((bfd *));
-int xcoff64_core_file_failing_signal
- PARAMS ((bfd *));
+const bfd_target *xcoff64_core_p (bfd *);
+bfd_boolean xcoff64_core_file_matches_executable_p (bfd *, bfd *);
+char *xcoff64_core_file_failing_command (bfd *);
+int xcoff64_core_file_failing_signal (bfd *);
const bfd_target *
-xcoff64_core_p (abfd)
- bfd *abfd ATTRIBUTE_UNUSED;
+xcoff64_core_p (bfd *abfd ATTRIBUTE_UNUSED)
{
bfd_set_error (bfd_error_wrong_format);
return 0;
}
bfd_boolean
-xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd)
- bfd *core_bfd ATTRIBUTE_UNUSED;
- bfd *exec_bfd ATTRIBUTE_UNUSED;
+xcoff64_core_file_matches_executable_p (bfd *core_bfd ATTRIBUTE_UNUSED,
+ bfd *exec_bfd ATTRIBUTE_UNUSED)
{
return FALSE;
}
char *
-xcoff64_core_file_failing_command (abfd)
- bfd *abfd ATTRIBUTE_UNUSED;
+xcoff64_core_file_failing_command (bfd *abfd ATTRIBUTE_UNUSED)
{
return 0;
}
int
-xcoff64_core_file_failing_signal (abfd)
- bfd *abfd ATTRIBUTE_UNUSED;
+xcoff64_core_file_failing_signal (bfd *abfd ATTRIBUTE_UNUSED)
{
return 0;
}
diff --git a/bfd/archures.c b/bfd/archures.c
index 0588610..eb042a6 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -438,6 +438,7 @@ extern const bfd_arch_info_type bfd_mmix_arch;
extern const bfd_arch_info_type bfd_mn10200_arch;
extern const bfd_arch_info_type bfd_mn10300_arch;
extern const bfd_arch_info_type bfd_msp430_arch;
+extern const bfd_arch_info_type bfd_ms1_arch;
extern const bfd_arch_info_type bfd_ns32k_arch;
extern const bfd_arch_info_type bfd_openrisc_arch;
extern const bfd_arch_info_type bfd_or32_arch;
@@ -460,7 +461,6 @@ extern const bfd_arch_info_type bfd_w65_arch;
extern const bfd_arch_info_type bfd_xstormy16_arch;
extern const bfd_arch_info_type bfd_xtensa_arch;
extern const bfd_arch_info_type bfd_z8k_arch;
-extern const bfd_arch_info_type bfd_ms1_arch;
static const bfd_arch_info_type * const bfd_archures_list[] =
{
@@ -490,6 +490,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
&bfd_ia64_arch,
&bfd_ip2k_arch,
&bfd_iq2000_arch,
+ &bfd_m32c_arch,
&bfd_m32r_arch,
&bfd_m68hc11_arch,
&bfd_m68hc12_arch,
@@ -523,7 +524,6 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
&bfd_xstormy16_arch,
&bfd_xtensa_arch,
&bfd_z8k_arch,
- &bfd_m32c_arch,
#endif
0
};
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 062a819..c9c75c2 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3035,6 +3035,25 @@ of the container. */
/* DLX relocs */
BFD_RELOC_DLX_JMP26,
+/* Renesas M16C/M32C Relocations. */
+ BFD_RELOC_M16C_8_PCREL8,
+ BFD_RELOC_M16C_16_PCREL8,
+ BFD_RELOC_M16C_8_PCREL16,
+ BFD_RELOC_M16C_8_ELABEL24,
+ BFD_RELOC_M16C_8_ABS16,
+ BFD_RELOC_M16C_16_ABS16,
+ BFD_RELOC_M16C_16_ABS24,
+ BFD_RELOC_M16C_16_ABS32,
+ BFD_RELOC_M16C_24_ABS16,
+ BFD_RELOC_M16C_24_ABS24,
+ BFD_RELOC_M16C_24_ABS32,
+ BFD_RELOC_M16C_32_ABS16,
+ BFD_RELOC_M16C_32_ABS24,
+ BFD_RELOC_M16C_32_ABS32,
+ BFD_RELOC_M16C_40_ABS16,
+ BFD_RELOC_M16C_40_ABS24,
+ BFD_RELOC_M16C_40_ABS32,
+
/* Renesas M32R (formerly Mitsubishi M32R) relocs.
This is a 24 bit absolute address. */
BFD_RELOC_M32R_24,
@@ -3802,6 +3821,21 @@ This is the 5 bits of a value. */
BFD_RELOC_VAX_JMP_SLOT,
BFD_RELOC_VAX_RELATIVE,
+/* Morpho MS1 - 16 bit immediate relocation. */
+ BFD_RELOC_MS1_PC16,
+
+/* Morpho MS1 - Hi 16 bits of an address. */
+ BFD_RELOC_MS1_HI16,
+
+/* Morpho MS1 - Low 16 bits of an address. */
+ BFD_RELOC_MS1_LO16,
+
+/* Morpho MS1 - Used to tell the linker which vtable entries are used. */
+ BFD_RELOC_MS1_GNU_VTINHERIT,
+
+/* Morpho MS1 - Used to tell the linker which vtable entries are used. */
+ BFD_RELOC_MS1_GNU_VTENTRY,
+
/* msp430 specific relocation codes */
BFD_RELOC_MSP430_10_PCREL,
BFD_RELOC_MSP430_16_PCREL,
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 6cd28f3..ba7676e 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -177,9 +177,6 @@ case "${targ}" in
;;
#endif /* BFD64 */
- m32c-*-elf)
- targ_defvec=bfd_elf32_m32c_vec
- ;;
am33_2.0-*-linux*)
targ_defvec=bfd_elf32_am33lin_vec
;;
@@ -665,6 +662,10 @@ case "${targ}" in
targ_defvec=bfd_elf32_iq2000_vec
;;
+ m32c-*-elf)
+ targ_defvec=bfd_elf32_m32c_vec
+ ;;
+
m32r*le-*-linux*)
targ_defvec=bfd_elf32_m32rlelin_vec
targ_selvecs="bfd_elf32_m32rlin_vec bfd_elf32_m32rlelin_vec"
diff --git a/bfd/configure b/bfd/configure
index b30121c..dc3ab6e 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -12939,7 +12939,6 @@ do
# This list is alphabetized to make it easy to compare
# with the two vector lists in targets.c. For the same reason,
# use one entry per line, even though this leads to long lines.
- bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
a29kcoff_big_vec) tb="$tb coff-a29k.lo cofflink.lo" ;;
a_out_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
aix5coff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
@@ -13004,6 +13003,7 @@ do
tb="$tb elf32-arm.lo elf32.lo $elf" ;;
bfd_elf32_littlearm_vec) tb="$tb elf32-arm.lo elf32.lo $elf" ;;
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;;
+ bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rlin_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
diff --git a/bfd/configure.in b/bfd/configure.in
index 3949e3a..8853151 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -560,7 +560,6 @@ do
# This list is alphabetized to make it easy to compare
# with the two vector lists in targets.c. For the same reason,
# use one entry per line, even though this leads to long lines.
- bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
a29kcoff_big_vec) tb="$tb coff-a29k.lo cofflink.lo" ;;
a_out_adobe_vec) tb="$tb aout-adobe.lo aout32.lo" ;;
aix5coff64_vec) tb="$tb coff64-rs6000.lo xcofflink.lo aix5ppc-core.lo"; target_size=64 ;;
@@ -625,6 +624,7 @@ do
tb="$tb elf32-arm.lo elf32.lo $elf" ;;
bfd_elf32_littlearm_vec) tb="$tb elf32-arm.lo elf32.lo $elf" ;;
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;;
+ bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
bfd_elf32_m32rlin_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 723d9be..2a83aae 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1338,6 +1338,23 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_DLX_HI16_S",
"BFD_RELOC_DLX_LO16",
"BFD_RELOC_DLX_JMP26",
+ "BFD_RELOC_M16C_8_PCREL8",
+ "BFD_RELOC_M16C_16_PCREL8",
+ "BFD_RELOC_M16C_8_PCREL16",
+ "BFD_RELOC_M16C_8_ELABEL24",
+ "BFD_RELOC_M16C_8_ABS16",
+ "BFD_RELOC_M16C_16_ABS16",
+ "BFD_RELOC_M16C_16_ABS24",
+ "BFD_RELOC_M16C_16_ABS32",
+ "BFD_RELOC_M16C_24_ABS16",
+ "BFD_RELOC_M16C_24_ABS24",
+ "BFD_RELOC_M16C_24_ABS32",
+ "BFD_RELOC_M16C_32_ABS16",
+ "BFD_RELOC_M16C_32_ABS24",
+ "BFD_RELOC_M16C_32_ABS32",
+ "BFD_RELOC_M16C_40_ABS16",
+ "BFD_RELOC_M16C_40_ABS24",
+ "BFD_RELOC_M16C_40_ABS32",
"BFD_RELOC_M32R_24",
"BFD_RELOC_M32R_10_PCREL",
"BFD_RELOC_M32R_18_PCREL",
@@ -1729,6 +1746,11 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_VAX_GLOB_DAT",
"BFD_RELOC_VAX_JMP_SLOT",
"BFD_RELOC_VAX_RELATIVE",
+ "BFD_RELOC_MS1_PC16",
+ "BFD_RELOC_MS1_HI16",
+ "BFD_RELOC_MS1_LO16",
+ "BFD_RELOC_MS1_GNU_VTINHERIT",
+ "BFD_RELOC_MS1_GNU_VTENTRY",
"BFD_RELOC_MSP430_10_PCREL",
"BFD_RELOC_MSP430_16_PCREL",
"BFD_RELOC_MSP430_16",
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 9d10d25..fb8a9db 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -3069,6 +3069,43 @@ ENUMDOC
DLX relocs
ENUM
+ BFD_RELOC_M16C_8_PCREL8
+ENUMX
+ BFD_RELOC_M16C_16_PCREL8
+ENUMX
+ BFD_RELOC_M16C_8_PCREL16
+ENUMX
+ BFD_RELOC_M16C_8_ELABEL24
+ENUMX
+ BFD_RELOC_M16C_8_ABS16
+ENUMX
+ BFD_RELOC_M16C_16_ABS16
+ENUMX
+ BFD_RELOC_M16C_16_ABS24
+ENUMX
+ BFD_RELOC_M16C_16_ABS32
+ENUMX
+ BFD_RELOC_M16C_24_ABS16
+ENUMX
+ BFD_RELOC_M16C_24_ABS24
+ENUMX
+ BFD_RELOC_M16C_24_ABS32
+ENUMX
+ BFD_RELOC_M16C_32_ABS16
+ENUMX
+ BFD_RELOC_M16C_32_ABS24
+ENUMX
+ BFD_RELOC_M16C_32_ABS32
+ENUMX
+ BFD_RELOC_M16C_40_ABS16
+ENUMX
+ BFD_RELOC_M16C_40_ABS24
+ENUMX
+ BFD_RELOC_M16C_40_ABS32
+ENUMDOC
+ Renesas M16C/M32C Relocations.
+
+ENUM
BFD_RELOC_M32R_24
ENUMDOC
Renesas M32R (formerly Mitsubishi M32R) relocs.
@@ -4044,7 +4081,7 @@ ENUMX
ENUMDOC
NS CR16C Relocations.
-ENUM
+ENUM
BFD_RELOC_CRX_REL4
ENUMX
BFD_RELOC_CRX_REL8
@@ -4257,6 +4294,27 @@ ENUMDOC
Relocations used by VAX ELF.
ENUM
+ BFD_RELOC_MS1_PC16
+ENUMDOC
+ Morpho MS1 - 16 bit immediate relocation.
+ENUM
+ BFD_RELOC_MS1_HI16
+ENUMDOC
+ Morpho MS1 - Hi 16 bits of an address.
+ENUM
+ BFD_RELOC_MS1_LO16
+ENUMDOC
+ Morpho MS1 - Low 16 bits of an address.
+ENUM
+ BFD_RELOC_MS1_GNU_VTINHERIT
+ENUMDOC
+ Morpho MS1 - Used to tell the linker which vtable entries are used.
+ENUM
+ BFD_RELOC_MS1_GNU_VTENTRY
+ENUMDOC
+ Morpho MS1 - Used to tell the linker which vtable entries are used.
+
+ENUM
BFD_RELOC_MSP430_10_PCREL
ENUMX
BFD_RELOC_MSP430_16_PCREL
diff --git a/bfd/targets.c b/bfd/targets.c
index 6d05dc8..355ac6a 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -596,6 +596,7 @@ extern const bfd_target bfd_elf32_mcore_big_vec;
extern const bfd_target bfd_elf32_mcore_little_vec;
extern const bfd_target bfd_elf32_mn10200_vec;
extern const bfd_target bfd_elf32_mn10300_vec;
+extern const bfd_target bfd_elf32_ms1_vec;
extern const bfd_target bfd_elf32_msp430_vec;
extern const bfd_target bfd_elf32_nbigmips_vec;
extern const bfd_target bfd_elf32_nlittlemips_vec;
@@ -792,7 +793,6 @@ extern const bfd_target sco5_core_vec;
extern const bfd_target trad_core_vec;
extern const bfd_target bfd_elf32_am33lin_vec;
-extern const bfd_target bfd_elf32_ms1_vec;
static const bfd_target * const _bfd_target_vector[] = {
#ifdef SELECT_VECS
@@ -903,6 +903,7 @@ static const bfd_target * const _bfd_target_vector[] = {
&bfd_elf32_mcore_little_vec,
&bfd_elf32_mn10200_vec,
&bfd_elf32_mn10300_vec,
+ &bfd_elf32_ms1_vec,
&bfd_elf32_msp430_vec,
#ifdef BFD64
&bfd_elf32_nbigmips_vec,
@@ -1125,7 +1126,6 @@ static const bfd_target * const _bfd_target_vector[] = {
&we32kcoff_vec,
&z8kcoff_vec,
&bfd_elf32_am33lin_vec,
- &bfd_elf32_ms1_vec,
#endif /* not SELECT_VECS */
/* Always support S-records, for convenience. */