diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/aix5ppc-core.c | 56 | ||||
-rw-r--r-- | bfd/archures.c | 4 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 34 | ||||
-rw-r--r-- | bfd/config.bfd | 7 | ||||
-rwxr-xr-x | bfd/configure | 2 | ||||
-rw-r--r-- | bfd/configure.in | 2 | ||||
-rw-r--r-- | bfd/libbfd.h | 22 | ||||
-rw-r--r-- | bfd/reloc.c | 60 | ||||
-rw-r--r-- | bfd/targets.c | 4 |
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. */ |