From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14609 invoked by alias); 28 Dec 2008 16:15:08 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 14511 invoked by uid 9674); 28 Dec 2008 16:15:04 -0000 Date: Sun, 28 Dec 2008 16:15:00 -0000 Message-ID: <20081228161504.14496.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-misc: Merge commit 'origin/master' into archer-jankratochvil-misc X-Git-Refname: refs/heads/archer-jankratochvil-misc X-Git-Reftype: branch X-Git-Oldrev: 076af0f74d1b2713371d122a78df99fe6ea6c98c X-Git-Newrev: da617182ac466ecf193345cf6f5e19a314df121e X-SW-Source: 2008-q4/txt/msg00244.txt.bz2 List-Id: The branch, archer-jankratochvil-misc has been updated via da617182ac466ecf193345cf6f5e19a314df121e (commit) via 2b13c99b148c83aab15005638a818c1b8aec4b8f (commit) via 8581535a8f15da3961ef8e108b1070ed08ca2be4 (commit) via 43f17405181c357d49d5193f0d16665964e6e5b0 (commit) via 4598bfbbd66f2bbd11c1d95e7caf3f7a7a1ed432 (commit) via b242b90839d4e79e53317b746414dddf50e2169f (commit) via 563227ba14831f6468d71abf0ca50ed7174e0327 (commit) via e793c2a84c2111d3c7fb51a8f04a76eac8ee3758 (commit) via 4941be4d1396562382640da4a2e8dd2ba718b317 (commit) via 286970c6bd53c6a5a252282e334d2469aa20dba7 (commit) via 49eb3a97ce331c38c1133a965df6cfdbbd4c49c0 (commit) via 8217d8b8fedfa6445fbfff732b65bacf017ac0db (commit) via 1ea30b1c3e6a1b2a9f038471203e9e043ec9f22a (commit) via 0c374d82d1079c91a6d9d8626eee65067e12d69b (commit) via 5ec7c2090a73e8a488afd418c7ac25a7f112e773 (commit) via 4912758dc497fcc09e2ce3d04d8eb34fc7f903bd (commit) via 15d23d26929391714006d3e4e82e66982d4c253f (commit) via 0d1845ec33cf76021a56ae85c75337b6b294ade7 (commit) via 2baaecceed1201d82a1919a9a6cc2f094b44ed6b (commit) via d0aad6615cd46494a6207650ced04e2f6c8e4df4 (commit) via 3adb16ca001caec36ca9a226eb66be4a1676da3e (commit) via 91148184de08f58587c3b566ddb3a717914bcd99 (commit) via 93cb045b7c85caa6fe372df5ada9dbb3ecbf4bcb (commit) via 506746b25e05bb7397ca7739abd332b058a1df92 (commit) via 1c34cff5284df4f439e045b457c8114ebe0b0ede (commit) via d8e503dc80e0427b3e5d688984d27587493ebaa6 (commit) via 74b8003e546928852c25de825a46353ba35cbd91 (commit) via b82726d591ea1d9d68e8f48d108ab646eebc09d3 (commit) via 396dc5343b8a584da7d4a381df9dfffc84a18949 (commit) via d01dd7a822a487c73576e740c491065d9e5d39da (commit) via 4f3c18d1d8d13a93071126c0d0017852d3ed6a00 (commit) via 75d44a52d91ea5a96b4de336b3918abd8797d827 (commit) via 21db5bdb710737d641c0c2fc7fd54feb3cb9cc9f (commit) from 076af0f74d1b2713371d122a78df99fe6ea6c98c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit da617182ac466ecf193345cf6f5e19a314df121e Merge: 2b13c99b148c83aab15005638a818c1b8aec4b8f 43f17405181c357d49d5193f0d16665964e6e5b0 Author: Jan Kratochvil Date: Sun Dec 28 16:54:22 2008 +0100 Merge commit 'origin/master' into archer-jankratochvil-misc commit 2b13c99b148c83aab15005638a818c1b8aec4b8f Author: Jan Kratochvil Date: Sun Dec 28 16:38:59 2008 +0100 Revert "https://bugzilla.redhat.com/show_bug.cgi?id=162775" This reverts commit e25caae08e0092125d06450426bd03cb57f6eb0b. commit 8581535a8f15da3961ef8e108b1070ed08ca2be4 Merge: 076af0f74d1b2713371d122a78df99fe6ea6c98c 4598bfbbd66f2bbd11c1d95e7caf3f7a7a1ed432 Author: Jan Kratochvil Date: Sun Dec 28 15:29:32 2008 +0100 Merge commit 'origin/master' into archer-jankratochvil-misc Conflicts: gdb/f-valprint.c ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 97 ++- bfd/Makefile.am | 9 + bfd/Makefile.in | 9 + bfd/archures.c | 4 + bfd/bfd-in2.h | 20 +- bfd/coffcode.h | 2 + bfd/config.bfd | 11 + bfd/configure | 2 + bfd/configure.in | 2 + bfd/cpu-lm32.c | 41 + bfd/elf-bfd.h | 5 - bfd/elf.c | 7 +- bfd/elf32-arm.c | 12 +- bfd/elf32-i386.c | 51 +- bfd/elf32-lm32.c | 2909 +++++++++++++++++++++++++++++++++++ bfd/elf32-m68k.c | 32 +- bfd/elf64-x86-64.c | 53 +- bfd/elfcode.h | 3 - bfd/elflink.c | 74 - bfd/elfxx-ia64.c | 14 +- bfd/libbfd.h | 9 + bfd/mach-o.c | 116 ++- bfd/mach-o.h | 15 +- bfd/reloc.c | 21 + bfd/syms.c | 11 +- bfd/targets.c | 3 + bfd/version.h | 2 +- gdb/ChangeLog | 50 + gdb/ada-lang.c | 60 +- gdb/ada-typeprint.c | 5 +- gdb/ada-valprint.c | 2 +- gdb/breakpoint.c | 43 +- gdb/breakpoint.h | 8 +- gdb/eval.c | 2 +- gdb/gdbtypes.c | 22 +- gdb/gdbtypes.h | 8 +- gdb/hppa-tdep.c | 2 +- gdb/infrun.c | 98 +- gdb/mdebugread.c | 4 +- gdb/printcmd.c | 21 +- gdb/python/python-internal.h | 1 + gdb/python/python-value.c | 4 - gdb/stack.c | 13 +- gdb/testsuite/ChangeLog | 4 + gdb/testsuite/gdb.base/entry.c | 29 - gdb/testsuite/gdb.base/entry.exp | 46 - gdb/testsuite/gdb.cp/punctuator.exp | 24 +- gdb/valarith.c | 2 +- gdb/value.h | 8 +- gdb/version.in | 2 +- include/ChangeLog | 4 + include/coff/ChangeLog | 4 + include/coff/ti.h | 9 + include/dis-asm.h | 1 + include/elf/ChangeLog | 8 + include/elf/common.h | 1 - include/elf/lm32.h | 56 + opcodes/ChangeLog | 45 + opcodes/Makefile.am | 44 + opcodes/Makefile.in | 52 +- opcodes/cgen-asm.in | 2 +- opcodes/cgen-dis.in | 4 +- opcodes/cgen-ibld.in | 4 +- opcodes/configure | 1 + opcodes/configure.in | 1 + opcodes/disassemble.c | 6 + opcodes/i386-dis.c | 20 +- opcodes/i386-opc.h | 3 +- opcodes/i386-opc.tbl | 28 +- opcodes/i386-tbl.h | 204 ++- opcodes/lm32-asm.c | 747 +++++++++ opcodes/lm32-desc.c | 1183 ++++++++++++++ opcodes/lm32-desc.h | 246 +++ opcodes/{cgen-dis.in => lm32-dis.c} | 128 ++- opcodes/lm32-ibld.c | 1061 +++++++++++++ opcodes/lm32-opc.c | 876 +++++++++++ opcodes/lm32-opc.h | 105 ++ opcodes/lm32-opinst.c | 473 ++++++ opcodes/po/ga.po | 252 ++-- sim/frv/ChangeLog | 5 + sim/frv/arch.c | 23 +- sim/frv/arch.h | 23 +- sim/frv/cpu.c | 23 +- sim/frv/cpu.h | 23 +- sim/frv/cpuall.h | 23 +- sim/frv/decode.c | 23 +- sim/frv/decode.h | 23 +- sim/frv/model.c | 23 +- sim/frv/sem.c | 123 +- 89 files changed, 9036 insertions(+), 836 deletions(-) create mode 100644 bfd/cpu-lm32.c create mode 100644 bfd/elf32-lm32.c delete mode 100644 gdb/testsuite/gdb.base/entry.c delete mode 100644 gdb/testsuite/gdb.base/entry.exp create mode 100644 include/elf/lm32.h create mode 100644 opcodes/lm32-asm.c create mode 100644 opcodes/lm32-desc.c create mode 100644 opcodes/lm32-desc.h copy opcodes/{cgen-dis.in => lm32-dis.c} (76%) create mode 100644 opcodes/lm32-ibld.c create mode 100644 opcodes/lm32-opc.c create mode 100644 opcodes/lm32-opc.h create mode 100644 opcodes/lm32-opinst.c First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6cd350f..b989a72 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,88 @@ +2008-12-23 Jon Beniston + + * Makefile.am: Add LM32 object files and dependencies. + * Makefile.in: Regenerate. + * archures.c: Add LM32 architechiture info. + * targets.c: Likewise. + * reloc.c: Likewise. + * bfd-in2.h: Regenerate. + * config.bfd: Add LM32 targets. + * configure.in: Likewise. + * configure: Regenerate. + * cpu-lm32.c: New file. + * elf32-lm32.c: New file. + +2008-12-23 H.J. Lu + + PR ld/7036 + * elfxx-ia64.c (elfNN_ia64_relax_section): Assume linker will + always insert 32byte between the .plt and .text sections after + the the first relaxation pass. + +2008-12-23 Nick Clifton + + PR 7093 + * elf32-arm.c (bfd_elf32_arm_init_maps): Only process ARM ELF + object files. + +2008-12-23 Tristan Gingold + + * mach-o.c (bfd_mach_o_make_bfd_section): Use the standard ELF name + .eh_frame for __TEXT.__eh_frame so that it is recognized by gdb. + Use shorter sections name for well known sections. + (bfd_mach_o_scan_read_dylinker): Only put dylinker name in the + section content. + (bfd_mach_o_scan_read_segment): Use shorter sections name for + well known segments. + (bfd_mach_o_scan_read_command): Ignore some new commands. + (bfd_mach_o_openr_next_archived_file): Use more descriptive names + for members filename. + (bfd_mach_o_fat_extract): New function to easily extract members + of a fat binary. + * mach-o.h (bfd_mach_o_load_command_type): Add new constants. + (bfd_mach_o_dylinker_command): Fix comment and reindent. + (bfd_mach_o_fat_extract): New prototype. + +2008-12-23 Johan Olmutz Nielsen + + * coffcode.h (coff_write_object_contents): Always initialise + section.s_page. + +2008-12-23 Andreas Schwab + + * elf32-m68k.c (elf_m68k_discard_copies): Use SYMBOL_CALLS_LOCAL. + (elf_m68k_relocate_section): Use SYMBOL_CALLS_LOCAL and + SYMBOL_REFERENCES_LOCAL. + (elf_m68k_relocate_section): Likewise. + +2008-12-23 Nick Clifton + + * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs + field. + (_bfd_elf_make_ifunc_reloc_section): Remove prototype. + * elf.c (swap_out_syms): Remove STT_IFUNC support. + (elf_find_function): Likewise. + * elf32-arm.c (arm_elf_find_function): Likewise. + (elf32_arm_adjust_dynamic_symbol): Likewise. + (elf32_arm_swap_symbol_in): Likewise. + (elf32_arm_is_function_type): Likewise. + * elf32-i386.c (is_indirect_symbol): Delete. + (elf_i386_check_relocs): Remove STT_IFUNC support. + (allocate_dynrelocs): Likewise. + (elf_i386_relocate_section): Likewise. + * elf64-x86-64.c (is_indirect_symbol): Delete. + (elf64_x86_64_check_relocs): Remove STT_IFUNC support. + (allocate_dynrelocs): Likewise. + (elf64_x86_64_relocate_section): Likewise. + * elfcode.h (elf_slurp_symbol_table): Likewise. + * elflink.c (_bfd_elf_adjust_symbol): Likewise. + (get_ifunc_reloc_section_name): Delete. + (_bfd_elf_make_ifunc_reloc_section): Delete. + * syms.c (BSF_INDIRECT_FUNCTION): Delete. + (bfd_print_symbol_vandf): Remove STT_IFUNC support. + (bfd_decode_symclass): Likewise. + * bfd-in2.h: Regenerate. + 2008-12-20 Hans-Peter Nilsson * elf32-cris.c (cris_elf_howto_table): Add entry for R_CRIS_32_IE. @@ -98,7 +183,7 @@ * cpu-avr.c (compatible): Makes avr-6 compatible only with itself. 2008-12-04 Andreas Krebbel - + * elf64-s390.c (elf_s390_check_relocs): Initialize htab->elf.dynobj if necessary. @@ -295,7 +380,7 @@ relocs. For overflow, emit additional messages for the new 16-bit relocs as well as R_CRIS_16_GOTPLT and R_CRIS_16_GOT. (elf_cris_finish_dynamic_symbol): Use elf_cris_finish_dynamic_symbol - instead of plain casts. Check new hash entry member + instead of plain casts. Check new hash entry member reg_got_refcount when checking whether to emit a GOT entry. (elf_cris_finish_dynamic_sections): Update head comment to warn about emitting relocs here. Use a temporary variable when testing @@ -348,7 +433,7 @@ Leave addend zero on LD DTPMOD dynamic reloc. 2008-11-19 Bob Wilson - + * xtensa-modules.c (sysregs): Add MMID, VECBASE, EPC5, EPC6, EPC7, EXCSAVE5, EXCSAVE6, EXCSAVE7, EPS5, EPS6, EPS7, CPENABLE, SCOMPARE1, and THREADPTR registers. @@ -411,7 +496,7 @@ (Slot_inst16b_get_field_fns, Slot_inst16b_set_field_fns): Likewise. (xtensa_modules): Update number of fields, operands, iclasses and opcodes. - + 2008-11-19 Nix * elf.c (swap_out_syms) [USE_STT_COMMON]: Fix syntax error. @@ -429,7 +514,7 @@ * elf32-arm.c (elf32_arm_merge_eabi_attributes): Merge half-precision attributes. (elf32_arm_copy_one_eabi_other_attribute): New. - (elf32_arm_copy_other_attribute_list): New. + (elf32_arm_copy_other_attribute_list): New. 2008-11-18 Nick Clifton @@ -464,7 +549,7 @@ 2008-11-14 Tristan Gingold - * configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG, + * configure.com: Handle bfd_default_target_size, BFD_HOST_LONG_LONG, BFD_HOST_64BIT_LONG_LONG, BFD_HOSTPTR_T, bfd_file_ptr. Generate bfdver.h. * vms-hdr.c (_bfd_vms_write_hdr): Use strdup/free instead of alloca. diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 8ddf3cc..4eac4a0 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -83,6 +83,7 @@ ALL_MACHINES = \ cpu-i960.lo \ cpu-ip2k.lo \ cpu-iq2000.lo \ + cpu-lm32.lo \ cpu-m32c.lo \ cpu-m32r.lo \ cpu-m68hc11.lo \ @@ -149,6 +150,7 @@ ALL_MACHINES_CFILES = \ cpu-i960.c \ cpu-ip2k.c \ cpu-iq2000.c \ + cpu-lm32.c \ cpu-m32c.c \ cpu-m32r.c \ cpu-m68hc11.c \ @@ -264,6 +266,7 @@ BFD32_BACKENDS = \ elf32-i960.lo \ elf32-ip2k.lo \ elf32-iq2000.lo \ + elf32-lm32.lo \ elf32-m32c.lo \ elf32-m32r.lo \ elf32-m68hc11.lo \ @@ -445,6 +448,7 @@ BFD32_BACKENDS_CFILES = \ elf32-i960.c \ elf32-ip2k.c \ elf32-iq2000.c \ + elf32-lm32.c \ elf32-m32c.c \ elf32-m32r.c \ elf32-m68k.c \ @@ -1093,6 +1097,7 @@ cpu-i860.lo: cpu-i860.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-i960.lo: cpu-i960.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-ip2k.lo: cpu-ip2k.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-iq2000.lo: cpu-iq2000.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h +cpu-lm32.lo: cpu-lm32.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-m32c.lo: cpu-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-m32r.lo: cpu-m32r.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-m68hc11.lo: cpu-m68hc11.c $(INCDIR)/filenames.h \ @@ -1426,6 +1431,10 @@ elf32-m32c.lo: elf32-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32c.h \ $(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \ elf32-target.h +elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 9d86902..fc370b0 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -348,6 +348,7 @@ ALL_MACHINES = \ cpu-i960.lo \ cpu-ip2k.lo \ cpu-iq2000.lo \ + cpu-lm32.lo \ cpu-m32c.lo \ cpu-m32r.lo \ cpu-m68hc11.lo \ @@ -414,6 +415,7 @@ ALL_MACHINES_CFILES = \ cpu-i960.c \ cpu-ip2k.c \ cpu-iq2000.c \ + cpu-lm32.c \ cpu-m32c.c \ cpu-m32r.c \ cpu-m68hc11.c \ @@ -530,6 +532,7 @@ BFD32_BACKENDS = \ elf32-i960.lo \ elf32-ip2k.lo \ elf32-iq2000.lo \ + elf32-lm32.lo \ elf32-m32c.lo \ elf32-m32r.lo \ elf32-m68hc11.lo \ @@ -711,6 +714,7 @@ BFD32_BACKENDS_CFILES = \ elf32-i960.c \ elf32-ip2k.c \ elf32-iq2000.c \ + elf32-lm32.c \ elf32-m32c.c \ elf32-m32r.c \ elf32-m68k.c \ @@ -1689,6 +1693,7 @@ cpu-i860.lo: cpu-i860.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-i960.lo: cpu-i960.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-ip2k.lo: cpu-ip2k.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-iq2000.lo: cpu-iq2000.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h +cpu-lm32.lo: cpu-lm32.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-m32c.lo: cpu-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-m32r.lo: cpu-m32r.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h cpu-m68hc11.lo: cpu-m68hc11.c $(INCDIR)/filenames.h \ @@ -2017,6 +2022,10 @@ elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \ $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h \ $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h +elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-m32c.lo: elf32-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \ $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32c.h \ diff --git a/bfd/archures.c b/bfd/archures.c index 1156e09..c76e16e 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -409,6 +409,8 @@ DESCRIPTION .#define bfd_mach_z80 3 {* With ixl, ixh, iyl, and iyh. *} .#define bfd_mach_z80full 7 {* All undocumented instructions. *} .#define bfd_mach_r800 11 {* R800: successor with multiplication. *} +. bfd_arch_lm32, {* Lattice Mico32 *} +.#define bfd_mach_lm32 1 . bfd_arch_last . }; */ @@ -471,6 +473,7 @@ extern const bfd_arch_info_type bfd_i960_arch; extern const bfd_arch_info_type bfd_ia64_arch; extern const bfd_arch_info_type bfd_ip2k_arch; extern const bfd_arch_info_type bfd_iq2000_arch; +extern const bfd_arch_info_type bfd_lm32_arch; extern const bfd_arch_info_type bfd_m32c_arch; extern const bfd_arch_info_type bfd_m32r_arch; extern const bfd_arch_info_type bfd_m68hc11_arch; @@ -542,6 +545,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] = &bfd_ia64_arch, &bfd_ip2k_arch, &bfd_iq2000_arch, + &bfd_lm32_arch, &bfd_m32c_arch, &bfd_m32r_arch, &bfd_m68hc11_arch, diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 37c24b7..779f03a 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2035,6 +2035,8 @@ enum bfd_architecture #define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */ #define bfd_mach_z80full 7 /* All undocumented instructions. */ #define bfd_mach_r800 11 /* R800: successor with multiplication. */ + bfd_arch_lm32, /* Lattice Mico32 */ +#define bfd_mach_lm32 1 bfd_arch_last }; @@ -4412,6 +4414,17 @@ BFD_RELOC_XTENSA_ASM_EXPAND. */ /* 4 bit value. */ BFD_RELOC_Z8K_IMM4L, + +/* Lattice Mico32 relocations. */ + BFD_RELOC_LM32_CALL, + BFD_RELOC_LM32_BRANCH, + BFD_RELOC_LM32_16_GOT, + BFD_RELOC_LM32_GOTOFF_HI16, + BFD_RELOC_LM32_GOTOFF_LO16, + BFD_RELOC_LM32_COPY, + BFD_RELOC_LM32_GLOB_DAT, + BFD_RELOC_LM32_JMP_SLOT, + BFD_RELOC_LM32_RELATIVE, BFD_RELOC_UNUSED }; typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; reloc_howto_type *bfd_reloc_type_lookup @@ -4472,13 +4485,6 @@ typedef struct bfd_symbol perhaps others someday. */ #define BSF_FUNCTION (1 << 3) - /* The symbol is an indirect code object. Unrelated to BSF_INDIRECT. - Relocations against a symbol with this flag have to evaluated at - run-time, where the function pointed to by this symbol is invoked - in order to determine the value to be used in the relocation. - BSF_FUNCTION must also be set for symbols with this flag. */ -#define BSF_INDIRECT_FUNCTION (1 << 4) - /* Used by the linker. */ #define BSF_KEEP (1 << 5) #define BSF_KEEP_G (1 << 6) diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 3b98c5d..12d2ad5 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -3528,6 +3528,8 @@ coff_write_object_contents (bfd * abfd) section.s_size = current->size; #ifdef coff_get_section_load_page section.s_page = coff_get_section_load_page (current); +#else + section.s_page = 0; #endif #ifdef COFF_WITH_PE diff --git a/bfd/config.bfd b/bfd/config.bfd index da7271b..452f25d 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -85,6 +85,7 @@ fido*) targ_archs=bfd_m68k_arch ;; hppa*) targ_archs=bfd_hppa_arch ;; i[3-7]86) targ_archs=bfd_i386_arch ;; i370) targ_archs=bfd_i370_arch ;; +lm32) targ_archs=bfd_lm32_arch ;; m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch" ;; m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch" ;; m68*) targ_archs=bfd_m68k_arch ;; @@ -727,6 +728,16 @@ case "${targ}" in targ_defvec=bfd_elf32_iq2000_vec ;; + lm32-*-elf) + targ_defvec=bfd_elf32_lm32_vec + targ_selvecs=bfd_elf32_lm32fdpic_vec + ;; + + lm32-*-*linux*) + targ_defvec=bfd_elf32_lm32fdpic_vec + targ_selvecs=bfd_elf32_lm32_vec + ;; + m32c-*-elf | m32c-*-rtems*) targ_defvec=bfd_elf32_m32c_vec ;; diff --git a/bfd/configure b/bfd/configure index 0a1ce6c..a3ca40f 100755 --- a/bfd/configure +++ b/bfd/configure @@ -20752,6 +20752,8 @@ do bfd_elf32_ia64_hpux_big_vec) tb="$tb elf32-ia64.lo elf32.lo $elf";; bfd_elf32_ip2k_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; bfd_elf32_iq2000_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; + bfd_elf32_lm32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; + bfd_elf32_lm32fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_littlearm_symbian_vec) diff --git a/bfd/configure.in b/bfd/configure.in index 47ef10c..d75e15a 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -689,6 +689,8 @@ do bfd_elf32_ia64_hpux_big_vec) tb="$tb elf32-ia64.lo elf32.lo $elf";; bfd_elf32_ip2k_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; bfd_elf32_iq2000_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; + bfd_elf32_lm32_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; + bfd_elf32_lm32fdpic_vec) tb="$tb elf32-lm32.lo elf32.lo $elf" ;; bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_littlearm_symbian_vec) diff --git a/bfd/cpu-lm32.c b/bfd/cpu-lm32.c new file mode 100644 index 0000000..227612f --- /dev/null +++ b/bfd/cpu-lm32.c @@ -0,0 +1,41 @@ +/* BFD support for the Lattice Mico32 architecture. + Copyright 2008 Free Software Foundation, Inc. + Contributed by Jon Beniston + + 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 3 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., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libbfd.h" + +const bfd_arch_info_type bfd_lm32_arch = +{ + 32, /* Bits in word. */ + 32, /* Bits in address. */ + 8, /* Bits in byte. */ + bfd_arch_lm32, /* Enum bfd_architecture. */ + bfd_mach_lm32, /* Machine number. */ + "lm32", /* Architecture name. */ + "lm32", /* Printable name. */ + 4, /* Alignment. */ + TRUE, /* Is this the default machine for the target. */ + bfd_default_compatible, /* Function callback to test if two files have compatible machines. */ + bfd_default_scan, + NULL /* Next. */ +}; + diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index effa344..5418e7f 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -1287,9 +1287,6 @@ struct bfd_elf_section_data /* A pointer to the bfd section used for dynamic relocs. */ asection *sreloc; - /* A pointer to the bfd section used for dynamic relocs against ifunc symbols. */ - asection *indirect_relocs; - union { /* Group name, if this section is a member of a group. */ const char *name; @@ -1771,8 +1768,6 @@ extern asection * _bfd_elf_get_dynamic_reloc_section (bfd *, asection *, bfd_boolean); extern asection * _bfd_elf_make_dynamic_reloc_section (asection *, bfd *, unsigned int, bfd *, bfd_boolean); -extern asection * _bfd_elf_make_ifunc_reloc_section - (bfd *, asection *, bfd *, unsigned int); extern long _bfd_elf_get_dynamic_reloc_upper_bound (bfd *); extern long _bfd_elf_canonicalize_dynamic_reloc diff --git a/bfd/elf.c b/bfd/elf.c index 7597d01..70ed765 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -6427,8 +6427,6 @@ Unable to find equivalent output section for symbol '%s' from section '%s'"), if ((flags & BSF_THREAD_LOCAL) != 0) type = STT_TLS; - else if ((flags & BSF_INDIRECT_FUNCTION) != 0) - type = STT_IFUNC; else if ((flags & BSF_FUNCTION) != 0) type = STT_FUNC; else if ((flags & BSF_OBJECT) != 0) @@ -7122,7 +7120,6 @@ elf_find_function (bfd *abfd ATTRIBUTE_UNUSED, continue; case STT_NOTYPE: case STT_FUNC: - case STT_IFUNC: if (bfd_get_section (&q->symbol) == section && q->symbol.value >= low_func && q->symbol.value <= offset) @@ -8941,10 +8938,10 @@ _bfd_elf_set_osabi (bfd * abfd, /* Return TRUE for ELF symbol types that represent functions. This is the default version of this function, which is sufficient for - most targets. It returns true if TYPE is STT_FUNC or STT_IFUNC. */ + most targets. It returns true if TYPE is STT_FUNC. */ bfd_boolean _bfd_elf_is_function_type (unsigned int type) { hooks/post-receive -- Repository for Project Archer.