public inbox for archer-commits@sourceware.org help / color / mirror / Atom feed
From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-type-refcount: Merge commit 'origin/master' into archer-jankratochvil-type-refcount Date: Mon, 23 Feb 2009 14:09:00 -0000 [thread overview] Message-ID: <20090223140927.5838.qmail@sourceware.org> (raw) The branch, archer-jankratochvil-type-refcount has been updated via 6565d504ae7decaa9065580ea9cb9b039f1b3b05 (commit) via 2bc2becfab3f5c1771f5a344fcb678f4b559e1d7 (commit) via f877ad1d0209b7b272278298b716c2bdb2c9bf94 (commit) via 13f7928fd58685981ca1ef65d435096125a1623e (commit) via 069fc023ab96df3d7723a945c7ecd7960495ba95 (commit) via d106a8e46e5715fb1abbce6e737d1218b8983bfb (commit) via be44ac148163ced0dde7b8ff23c8f1cc49efa106 (commit) via af689630c851b0f05e29ca86e3980f24241bfcf0 (commit) via 5e3762932aeb33efd3786fdfaa5ae4e9f26fc497 (commit) via f002322d7957df3a2d7e468e74d595369c16932d (commit) via 97a89742c8bd04df6ce261d5c615205ab0ae524f (commit) via ca0aed765a0e22d44023feea2cda7af46bc3118c (commit) via 256b89a3d83d84e75aee72882dea40fbfe5f7ca5 (commit) via 1f2311b95f61b42edb1f8058c6e1aff436f3e9f8 (commit) via 459788c68ea3b7ba9344a1786e57b2a65f5f9cf2 (commit) via 57959f6eab583d328b0b7eefc2910de8b9fa06ea (commit) via 2d2f8919e2a4e808f233c7e6675ed17c5a788aea (commit) from 48c30cb6b9c943fd4ab69d552b8f51f8e67b99f2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6565d504ae7decaa9065580ea9cb9b039f1b3b05 Merge: 48c30cb6b9c943fd4ab69d552b8f51f8e67b99f2 2bc2becfab3f5c1771f5a344fcb678f4b559e1d7 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Mon Feb 23 15:08:50 2009 +0100 Merge commit 'origin/master' into archer-jankratochvil-type-refcount ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 224 +++++ bfd/bfd-in2.h | 16 + bfd/bfdio.c | 22 +- bfd/elf32-arm.c | 73 +- bfd/libbfd.h | 4 + bfd/makefile.vms | 10 +- bfd/reloc.c | 24 + bfd/version.h | 2 +- bfd/vms-gsd.c | 347 ++++++-- bfd/vms-hdr.c | 1090 ++++++++++++++++++++++++- bfd/vms-misc.c | 520 +++++++------ bfd/vms-tir.c | 1559 ++++++++++++++++++++++++----------- bfd/vms.c | 823 ++++++++++++++---- bfd/vms.h | 635 ++++++++++----- gdb/ChangeLog | 347 ++++++++- gdb/ada-exp.y | 3 + gdb/ada-lang.c | 17 +- gdb/ada-tasks.c | 11 +- gdb/addrmap.c | 3 + gdb/alpha-linux-tdep.c | 5 +- gdb/alpha-osf1-tdep.c | 3 + gdb/alphabsd-nat.c | 6 +- gdb/amd64-linux-nat.c | 6 +- gdb/amd64-nat.c | 1 + gdb/amd64-sol2-tdep.c | 3 + gdb/amd64bsd-nat.c | 6 +- gdb/amd64fbsd-tdep.c | 2 +- gdb/amd64nbsd-tdep.c | 2 +- gdb/arm-linux-nat.c | 6 +- gdb/arm-linux-tdep.c | 5 +- gdb/armbsd-tdep.c | 2 +- gdb/armnbsd-nat.c | 6 +- gdb/armnbsd-tdep.c | 3 + gdb/armobsd-tdep.c | 3 + gdb/auxv.c | 2 +- gdb/avr-tdep.c | 4 +- gdb/bfd-target.c | 4 +- gdb/breakpoint.c | 5 +- gdb/bsd-kvm.c | 6 +- gdb/bsd-uthread.c | 52 +- gdb/cli/cli-logging.c | 5 +- gdb/corelow.c | 30 +- gdb/cp-name-parser.y | 1 + gdb/cp-namespace.c | 3 + gdb/cp-valprint.c | 2 +- gdb/cris-tdep.c | 4 +- gdb/darwin-nat.c | 18 +- gdb/eval.c | 2 +- gdb/exceptions.c | 2 +- gdb/exec.c | 6 +- gdb/findcmd.c | 3 + gdb/fork-child.c | 3 + gdb/frame.c | 2 +- gdb/frv-tdep.c | 2 +- gdb/gcore.c | 3 + gdb/gdbarch.c | 33 + gdb/gdbarch.h | 9 + gdb/gdbarch.sh | 4 + gdb/gdbcore.h | 4 - gdb/gnu-nat.c | 11 +- gdb/gnu-v3-abi.c | 2 +- gdb/go32-nat.c | 22 +- gdb/h8300-tdep.c | 4 +- gdb/hppa-hpux-nat.c | 6 +- gdb/hppa-linux-nat.c | 6 +- gdb/hppa-tdep.c | 4 +- gdb/hppa-tdep.h | 2 - gdb/hppabsd-nat.c | 6 +- gdb/hppabsd-tdep.c | 3 +- gdb/{sol2-tdep.h => hppabsd-tdep.h} | 14 +- gdb/hppanbsd-nat.c | 6 +- gdb/hppanbsd-tdep.c | 5 +- gdb/hppaobsd-tdep.c | 5 +- gdb/hpux-thread.c | 31 +- gdb/i386-darwin-nat.c | 6 +- gdb/i386-linux-nat.c | 11 +- gdb/i386-nto-tdep.c | 3 + gdb/i386-sol2-tdep.c | 3 + gdb/i386bsd-nat.c | 6 +- gdb/i386fbsd-nat.c | 3 +- gdb/i386nbsd-tdep.c | 3 + gdb/ia64-linux-nat.c | 6 +- gdb/ia64-linux-tdep.c | 3 + gdb/ia64-tdep.c | 2 +- gdb/inf-child.c | 7 +- gdb/inf-ptrace.c | 14 +- gdb/inf-ttrace.c | 26 +- gdb/inferior.h | 2 +- gdb/infrun.c | 4 +- gdb/iq2000-tdep.c | 3 + gdb/jv-lang.c | 2 +- gdb/linux-nat.c | 33 +- gdb/linux-tdep.c | 1 + gdb/linux-thread-db.c | 27 +- gdb/m2-typeprint.c | 2 +- gdb/m32c-tdep.c | 8 +- gdb/m32r-linux-nat.c | 6 +- gdb/m32r-rom.c | 3 + gdb/m32r-tdep.c | 4 +- gdb/m68hc11-tdep.c | 4 +- gdb/m68kbsd-nat.c | 6 +- gdb/m68klinux-nat.c | 6 +- gdb/m68klinux-tdep.c | 3 + gdb/m88k-tdep.c | 2 +- gdb/m88kbsd-nat.c | 6 +- gdb/macroscope.c | 2 + gdb/mep-tdep.c | 6 +- gdb/mi/mi-common.c | 3 + gdb/mips-irix-tdep.c | 3 + gdb/mips-linux-nat.c | 10 +- gdb/mips-linux-tdep.c | 7 +- gdb/mips-tdep.c | 2 +- gdb/mips64obsd-nat.c | 6 +- gdb/mipsnbsd-nat.c | 6 +- gdb/mipsnbsd-tdep.c | 3 + gdb/mn10300-linux-tdep.c | 3 + gdb/mn10300-tdep.c | 3 + gdb/monitor.c | 11 +- gdb/mt-tdep.c | 3 + gdb/nbsd-tdep.c | 1 + gdb/nto-procfs.c | 23 +- gdb/nto-tdep.c | 5 +- gdb/osdata.c | 2 +- gdb/ppc-linux-nat.c | 6 +- gdb/ppc-linux-tdep.c | 5 +- gdb/ppcnbsd-nat.c | 6 +- gdb/ppcobsd-nat.c | 6 +- gdb/proc-service.c | 3 + gdb/procfs.c | 190 ++--- gdb/python/python.c | 3 + gdb/regcache.c | 2 +- gdb/remote-m32r-sdi.c | 69 +- gdb/remote-mips.c | 20 +- gdb/remote-sim.c | 16 +- gdb/remote.c | 27 +- gdb/reverse.c | 3 + gdb/rs6000-aix-tdep.c | 3 + gdb/rs6000-nat.c | 14 +- gdb/rs6000-tdep.c | 16 +- gdb/s390-nat.c | 6 +- gdb/s390-tdep.c | 2 +- gdb/sh-tdep.c | 2 +- gdb/shnbsd-nat.c | 6 +- gdb/shnbsd-tdep.c | 5 +- gdb/sol-thread.c | 509 ++---------- gdb/sol2-tdep.c | 13 + gdb/sol2-tdep.h | 2 + gdb/solib-frv.c | 5 +- gdb/solib-irix.c | 5 +- gdb/solib-som.c | 4 +- gdb/solib-svr4.c | 2 +- gdb/solib.c | 1 + gdb/sparc-nat.c | 6 +- gdb/sparc-nat.h | 6 +- gdb/sparc-sol2-tdep.c | 3 + gdb/sparc-tdep.c | 2 +- gdb/sparc64-sol2-tdep.c | 3 + gdb/sparcnbsd-tdep.c | 2 +- gdb/spu-linux-nat.c | 6 +- gdb/spu-tdep.c | 5 +- gdb/stabsread.c | 4 +- gdb/symfile-mem.c | 4 + gdb/symfile.c | 2 +- gdb/symtab.c | 4 +- gdb/target-descriptions.c | 3 + gdb/target.c | 182 +++-- gdb/target.h | 24 +- gdb/tui/tui-command.c | 1 + gdb/tui/tui-data.c | 4 +- gdb/tui/tui-disasm.c | 1 + gdb/tui/tui-interp.c | 3 + gdb/tui/tui-layout.c | 5 + gdb/tui/tui-regs.c | 6 +- gdb/tui/tui-stack.c | 4 + gdb/tui/tui-win.c | 10 +- gdb/tui/tui-win.h | 3 +- gdb/tui/tui-windata.c | 1 + gdb/tui/tui-wingeneral.c | 2 +- gdb/utils.c | 3 + gdb/vax-tdep.c | 2 +- gdb/vaxbsd-nat.c | 6 +- gdb/version.in | 2 +- gdb/windows-nat.c | 23 +- gdb/xcoffread.c | 6 +- gdb/{sol2-tdep.h => xcoffread.h} | 15 +- gdb/xtensa-linux-nat.c | 6 +- gdb/xtensa-linux-tdep.c | 3 + gdb/xtensa-tdep.c | 7 +- libiberty/ChangeLog | 5 + libiberty/make-temp-file.c | 87 ++- 190 files changed, 5493 insertions(+), 2358 deletions(-) copy gdb/{sol2-tdep.h => hppabsd-tdep.h} (72%) copy gdb/{sol2-tdep.h => xcoffread.h} (72%) First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 32ae0d8..1c4717f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,227 @@ +2009-02-23 Christophe Lyon <christophe.lyon@st.com> + + * elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub + code. + (elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise. + (arm_type_of_stub): Use Thumb-only long branch stub (non-PIC) when + BLX is not available. Fix typo in warning message. Add comments + and improve formatting. + (arm_build_one_stub): Adjust to new + elf32_arm_stub_long_branch_v4t_thumb_arm stub. + (arm_map_one_stub): Likewise. + +2009-02-23 Tristan Gingold <gingold@adacore.com> + + * vms.h: Update copyright year, fix comments, reorder declarations. + (_bfd_save_vms_section): Remove the prototype. + (EGPS_S_V_NO_SHIFT): New constant. + (bfd_vms_set_section_flags): New prototype. + (EGPS_S_B_ALIGN, EGPS_S_W_FLAGS, EGPS_S_L_ALLOC, EGPS_S_B_NAMLNG): New + constants. + (EGSY_S_W_FLAGS): Ditto. + (EGSY_S_V_QUAD_VAL): Ditto. + (ESDF_S_L_VALUE, ESDF_S_L_PSINDX, ESDF_S_B_NAMLNG): Ditto. + (EGST_S_W_FLAGS, EGST_S_Q_LP_1, EGST_S_Q_LP_2, EGST_S_L_PSINDX, + EGST_S_B_NAMLNG): Ditto. + (ESRF_S_B_NAMLNG): Ditto. + (ETIR_S_C_HEADER_SIZE): Ditto. + (EGPS_S_V_ALLOC_64BIT): Ditto. + (DST_S_C_EPILOG): Ditto. + (DST_S_C_SRC_SETLNUM_L, DST_S_C_SRC_SETLNUM_W) : Ditto. + (DST_S_C_SRC_INCRLNUM_B): Ditto. + (DST_S_B_PCLINE_UNSBYTE, DST_S_W_PCLINE_UNSWORD): Ditto. + (DST_S_L_PCLINE_UNSLONG): Ditto. + (DST_S_B_MODBEG_NAME, DST_S_L_RTNBEG_ADDRESS) : Ditto + (DST_S_B_RTNBEG_NAME, DST_S_L_RTNEND_SIZE): Ditto + (DST_S_C_SOURCE_HEADER_SIZE): Ditto. + (DST_S_B_SRC_DF_LENGTH, DST_S_W_SRC_DF_FILEID): Ditto. + (DST_S_B_SRC_DF_FILENAME, DST_S_B_SRC_UNSBYTE): Ditto. + (DST_S_B_SRC_UNSBYTE): Ditto. + (DST_S_W_SRC_UNSWORD, DST_S_L_SRC_UNSLONG): Ditto. + Add prototypes. + (vms_section, vms_reloc): Remove types. + (hdr_struc): Replaced by ... + (hdr_struct): ... new type. + (EMH_S_W_HDRTYP, EMH_S_B_STRLVL, EMH_S_L_ARCH1): New constants. + (EMH_S_L_ARCH2, EMH_S_L_RECSIZ, EMH_S_B_NAMLNG): Ditto. + (EMH_DATE_LENGTH): Ditto. + (eom_struc): Replaced by ... + (eom_struct): ... new type. + (EEOM_S_L_TOTAL_LPS, EEOM_S_W_COMCOD, EEOM_S_B_TFRFLG): New constants. + (EEOM_S_L_PSINDX, EEOM_S_L_TFRADR): Ditto. + (EIHD_S_K_MAJORID, EIHD_S_K_MINORID, EIHD_S_K_EXE): Ditto. + (EIHD_S_L_SIZE, EIHD_S_L_ISDOFF, EIHD_S_L_SYMDBGOFF): Ditto. + (EIHD_S_Q_SYMVVA, EIHD_S_L_IMGTYPE): Ditto. + (EISD_S_L_EISDSIZE, EISD_S_L_SECSIZE, EISD_S_Q_VIR_ADDR): Ditto. + (EISD_S_L_FLAGS, EISD_S_L_VBN, EISD_S_R_CONTROL): Ditto. + (EISD_S_L_IDENT, EISD_S_T_GBLNAM): Ditto. + (EISD_S_M_GBL, EISD_S_M_CRF, EISD_S_M_DZRO, EISD_S_M_WRT): Ditto. + (EISD_S_M_INITALCODE, EISD_S_M_BASED, EISD_S_M_FIXUPVEC): Ditto. + (EISD_S_M_RESIDENT, EISD_S_M_VECTOR, EISD_S_M_PROTECT): Ditto. + (EISD_S_M_LASTCLU, EISD_S_M_EXE, EISD_S_M_NONSHRADR): Ditto. + (EISD_S_M_QUAD_LENGTH, EISD_S_M_ALLOC_64BIT): Ditto. + (EIHS_S_L_DSTVBN, EIHS_S_L_DSTSIZE, EIHS_S_L_GSTVBN): Ditto. + (EIHS_S_L_GSTSIZE, EIHS_S_L_DMTVBN, EIHS_S_L_DMTBYTES): Ditto. + (DBG_S_L_DMT_MODBEG, DBG_S_L_DST_SIZE): Ditto. + (DBG_S_W_DMT_PSECT_COUNT, DBG_S_C_DMT_HEADER_SIZE): Ditto. + (DBG_S_L_DMT_PSECT_START, DBG_S_L_DMT_PSECT_LENGTH) + (DBG_S_C_DMT_PSECT_SIZE): Ditto. + (enum file_type_enum): New type. + (struct location_struct): Removed. + (struct fileinfo, struct srecinfo, struct lineinfo): New types. + (struct funcinfo, struct module): Ditto. + (struct vms_private_data_struct): Update fields. + (struct vms_section_data_struct): New type. + + * vms.c: Update copyright year, fix comments, + Fix includes for DECC, add prototypes. + (vms_initialize): Use bfd_alloc instead of bfd_zalloc and remove + some initializers. + Use flavour to set is_vax, location_stack is removed. + (struct pair): Declare. + (fill_section_ptr): Initialize variables at declaration. + Add guard to set SECTION_SYM flag, handlde und section. + (vms_fixup_sections): Use struct pair for fill_section_ptr argument. + (_bfd_vms_slurp_object_records): New function, replaces previous + vms_object_p. + (vms_slurp_module): New function. + (vms_slurp_image): Ditto. + (vms_object_p): Complete rewrite. + (vms_mkobject): Use is_vax field to slect architecture. + (free_reloc_stream): New function. + (vms_convert_to_var): Ditto. + (vms_convert_to_var_1): Ditto. + (vms_convert_to_var_unix_filename): Ditto. + (vms_close_and_cleanup): Call free_reloc_stream, convert file to + VAR format on VMS. + (vms_new_section_hook): Set alignment to 0, allocate private data. + (vms_get_section_contents): Load content. + (vms_get_symbol_info): Handle undefined section. + (vms_find_nearest_line): Handle. + (alloc_reloc_stream): New function. + (vms_slurp_reloc_table): Ditto. + (vms_get_reloc_upper_bound): Make it real. + (vms_canonicalize_reloc): Do the real work. + (alpha_howto_table): Add ALPHA_R_NOP, ALPHA_R_BSR, ALPHA_R_LDA, + ALPHA_R_BOH. + (vms_bfd_reloc_type_lookup): Handle NOP, BSR, LDA and BOH. + (vms_set_arch_mach): Check arch. + (vms_set_section_contents): Copy the content after allocation. + (vms_alpha_vec): Update object flags. + + * vms-tir.c: Update copyright year, fix comments, + add prototypes for new functions. + (dst_define_location): New function. + (dst_restore_location): New function. + (dst_retrieve_location): New function. + (dst_check_allocation): New function. + (image_dump): Call dst_check_allocation. + (image_write_b): Ditto. + (image_write_w): Ditto. + (image_write_l): Ditto. + (image_write_q): Ditto. + (cmd_name): Handle STA_LW, STA_QW, STO_OFF, STO_IMM, STO_IMMR, STO_LW, + STO_QW, OPR_ADD, CTL_SETRB, STC_LP_PSB, CTL_DFLOC, CTL_STLOC, + CTL_STKDL. + Call error handler instead of abort if name is not known. + (etir_sta): Add quarter_relocs argument and set it. + Fix cast. + (etir_sto): Ditto. + (etir_opr): Ditto, return FALSE in case of error. + (etir_ctl): Add quarter_relocs argument and set it, fix cast. + Fix CTL_DFLOC, CTL_STLOC, CTL_STKDL. + (etir_stc): Add quarter_relocs argument and set it, fix cast. + Fix STC_LP, STC_LP_PSB, STC_GBL and STC_CGA. + Handle STC_LP_PSB, STC_BSR_GBL, STC_LDA_GBL, STC_BOH_GBL. + Move STC_NOP_PS, STC_BSR_PS, STC_LDA_PS, STC_BOH_PS, STC_NBH_PS. + Return FALSE in case of error. + (tir_sta): Change sign of psect. + (tir_ctl): Ditto. + (tir_cmd): Fix cast. Makes tir_table static const. + (etir_cmd): Add quarter_relocs argument, makes etir_table const, + add argument to explain. + (analyze_etir): Initialize maxptr, add quarter_relocs + declaration, move some declarations into inner scopes. + Handle quarter_relocs and STO_IMM. + (_bfd_vms_slurp_tir): Use constant instead of hard-coded values. + (_bfd_vms_slurp_relocs): New function. + (_bfd_vms_decode_relocs): New function. + (sto_imm): Rewritten. + (start_first_etbt_record): New function. + (start_another_etbt_record): Ditto. + (etir_output_check): Ditto. + (defer_reloc_p): Ditto. + (_bfd_vms_write_tir): Remove nextoffset, convert a while-loop to + a for-loop. Correctly deals with contents, deals with .vmsdebug, + rewritte relocations handling. + (_bfd_vms_write_tbt): Removed. + (_bfd_vms_write_dbg): Ditto. + + * vms-misc.c: Update copyright year, Fix comments. + (_bfd_vms_get_header_values): Use 'size' instead of 'length'. + (maybe_adjust_record_pointer_for_object): New function. + (_bfd_vms_get_first_record): New function, replaces ... + (_bfd_vms_get_record): .. removed. + (_bfd_vms_get_object_record): New function. + (_bfd_vms_get_object_record): New function. + (vms_get_remaining_object_record): New function, replaces ... + (_bfd_vms_get_next_record): ... removed. + (add_new_contents): Removed. + (_bfd_save_vms_section): Removed. + (_bfd_get_vms_section): Removed. + (_bfd_vms_output_flush): Write in VAR format. + (new_symbol): Don't make UND section. + + * vms-hdr.c: Update copyright year, update list of record handled. + (_bfd_vms_slurp_hdr): rec_length renamed to rec_size. + (_bfd_vms_write_hdr): Strip vms and unix patches, + add comments, truncate module name at 31 characters, + use constants instead of hard-coded value, + write BFD version instead of a fixed string. + (_bfd_vms_slurp_ihd): New function. + (_bfd_vms_slurp_isd): Ditto. + (_bfd_vms_slurp_ihs): Ditto. + (new_module): Ditto. + (parse_module): Ditto + (build_module_list): Ditto. + (module_find_nearest_line): Ditto. + (_bfd_vms_find_nearest_dst_line): Ditto. + (vms_slurp_debug): Ditto. + (_bfd_vms_slurp_dbg): Ditto. + (_bfd_vms_slurp_tbt): Ditto. + (_bfd_vms_write_dbg): Ditto. + (_bfd_vms_write_tbt): Ditto. + + * vms-gsd.c: Update copyright year, update list of records handled. + (EVAX_LITERALS_NAME): New macro. + (evax_section_flags): Add an entry for EVAX_LITERALS_NAME. + (gpsflagdesc, gsyflagdesc): Moved out of _bfd_vms_slurp_gsd. + (register_universal_symbol): New function and prototype. + (_bfd_vms_slurp_gsd): Fix indentations and casts, + improve debug messages, + use constants instead of hard-coded value, + fix missing endianness conversion, + handle global symbol (SYMG). + (bfd_vms_set_section_flags): New function. + (_bfd_vms_write_gsd): Don't write .vmsdebug section, + handle section literals, + fix indentation, + handle section bfd and vms flags, + don't output LIB$INITIALIZE symbol, + fix handling of weak symbols, + fix evax vs vax procedure descriptor, + handle absolute symbols. + + * reloc.c (BFD_RELOC_ALPHA_NOP, BFD_RELOC_ALPHA_BSR, + BFD_RELOC_ALPHA_LDA, BFD_RELOC_ALPHA_BOH): New relocations. + + * makefile.vms (DEFS): Fix flags for VMS. + + * bfdio.c (real_fopen): Handle multiple VMS fopen attributes. + + * bfd-in2.h: Regenerated. + * libbfd.h: Regenerated. + 2009-02-20 Cary Coutant <ccoutant@google.com> * vmsutil.c (vms_file_stats_name): Fix incorrect use of st_mtime diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 994759d..7870962 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2586,6 +2586,22 @@ share a common GP, and the target address is adjusted for STO_ALPHA_STD_GPLOAD. */ BFD_RELOC_ALPHA_BRSGP, +/* The NOP relocation outputs a NOP if the longword displacement +between two procedure entry points is < 2^21. */ + BFD_RELOC_ALPHA_NOP, + +/* The BSR relocation outputs a BSR if the longword displacement +between two procedure entry points is < 2^21. */ + BFD_RELOC_ALPHA_BSR, + +/* The LDA relocation outputs a LDA if the longword displacement +between two procedure entry points is < 2^16. */ + BFD_RELOC_ALPHA_LDA, + +/* The BOH relocation outputs a BSR if the longword displacement +between two procedure entry points is < 2^21, or else a hint. */ + BFD_RELOC_ALPHA_BOH, + /* Alpha thread-local storage relocations. */ BFD_RELOC_ALPHA_TLSGD, BFD_RELOC_ALPHA_TLSLDM, diff --git a/bfd/bfdio.c b/bfd/bfdio.c index 7cba51f..d3a295c 100644 --- a/bfd/bfdio.c +++ b/bfd/bfdio.c @@ -102,13 +102,21 @@ real_fopen (const char *filename, const char *modes) } else { - /* Attribute found - rebuild modes. */ - size_t modes_len = vms_attr - modes; - - BFD_ASSERT (modes_len < sizeof (vms_modes)); - memcpy (vms_modes, modes, modes_len); - vms_modes[modes_len] = 0; - return close_on_exec (fopen (filename, vms_modes, vms_attr + 1)); + /* Attributes found. Split. */ + size_t modes_len = strlen (modes) + 1; + char attrs[modes_len + 1]; + char *at[3]; + int i; + + memcpy (attrs, modes, modes_len); + at[0] = attrs; + for (i = 0; i < 2; i++) + { + at[i + 1] = strchr (at[i], ','); + BFD_ASSERT (at[i + 1] != NULL); + *(at[i + 1]++) = 0; /* Replace ',' with a nul, and skip it. */ + } + return close_on_exec (fopen (filename, at[0], at[1], at[2])); } #else /* !VMS */ #if defined (HAVE_FOPEN64) diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 04f5405..6cf3322 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -2032,11 +2032,11 @@ static const bfd_vma elf32_arm_stub_long_branch_v4t_arm_thumb[] = to ARM. */ static const bfd_vma elf32_arm_stub_long_branch_thumb_only[] = { - 0x4e02b540, /* push {r6, lr} */ - /* ldr r6, [pc, #8] */ - 0x473046fe, /* mov lr, pc */ - /* bx r6 */ - 0xbf00bd40, /* pop {r6, pc} */ + 0x4802b401, /* push {r0} */ + /* ldr r0, [pc, #8] */ + 0xbc014684, /* mov ip, r0 */ + /* pop {r0} */ + 0xbf004760, /* bx ip */ /* nop */ 0x00000000, /* dcd R_ARM_ABS32(X) */ }; @@ -2045,13 +2045,10 @@ static const bfd_vma elf32_arm_stub_long_branch_thumb_only[] = available. */ static const bfd_vma elf32_arm_stub_long_branch_v4t_thumb_arm[] = { - 0x4e03b540, /* push {r6, lr} */ - /* ldr r6, [pc, #12] */ - 0x473046fe, /* mov lr, pc */ - /* bx r6 */ - 0xe8bd4040, /* pop {r6, pc} */ - 0xe12fff1e, /* bx lr */ - 0x00000000, /* dcd R_ARM_ABS32(X) */ + 0x46c04778, /* bx pc */ + /* nop */ + 0xe51ff004, /* ldr pc, [pc, #-4] */ + 0x00000000, /* dcd R_ARM_ABS32(X) */ }; /* V4T Thumb -> ARM short branch stub. Shorter variant of the above @@ -2819,20 +2816,27 @@ arm_type_of_stub (struct bfd_link_info *info, if (!thumb_only) { stub_type = (info->shared | globals->pic_veneer) + /* PIC stubs. */ ? ((globals->use_blx) + /* V5T and above. */ ? arm_stub_long_branch_any_any_pic + /* not yet supported on V4T. */ : arm_stub_none) - : (globals->use_blx) - ? arm_stub_long_branch_any_any - : arm_stub_none; + + /* non-PIC stubs. */ + : ((globals->use_blx) + /* V5T and above. */ + ? arm_stub_long_branch_any_any + /* V4T. */ + : arm_stub_long_branch_thumb_only); } else { stub_type = (info->shared | globals->pic_veneer) + /* PIC stub not yet supported on V4T. */ ? arm_stub_none - : (globals->use_blx) - ? arm_stub_long_branch_thumb_only - : arm_stub_none; + /* non-PIC stub. */ + : arm_stub_long_branch_thumb_only; } } else @@ -2849,12 +2853,19 @@ arm_type_of_stub (struct bfd_link_info *info, } stub_type = (info->shared | globals->pic_veneer) + /* PIC stubs. */ ? ((globals->use_blx) + /* V5T and above. */ ? arm_stub_long_branch_any_any_pic + /* not yet supported on V4T. */ : arm_stub_none) - : (globals->use_blx) - ? arm_stub_long_branch_any_any - : arm_stub_long_branch_v4t_thumb_arm; + + /* non-PIC stubs. */ + : ((globals->use_blx) + /* V5T and above. */ + ? arm_stub_long_branch_any_any + /* V4T. */ + : arm_stub_long_branch_v4t_thumb_arm); /* Handle v4t short branches. */ if ((stub_type == arm_stub_long_branch_v4t_thumb_arm) @@ -2876,7 +2887,7 @@ arm_type_of_stub (struct bfd_link_info *info, { (*_bfd_error_handler) (_("%B(%s): warning: interworking not enabled.\n" - " first occurrence: %B: Thumb call to ARM"), + " first occurrence: %B: ARM call to Thumb"), sym_sec->owner, input_bfd, name); } @@ -2887,10 +2898,14 @@ arm_type_of_stub (struct bfd_link_info *info, || !globals->use_blx) { stub_type = (info->shared | globals->pic_veneer) + /* PIC stubs. */ ? arm_stub_long_branch_any_any_pic - : (globals->use_blx) - ? arm_stub_long_branch_any_any - : arm_stub_long_branch_v4t_arm_thumb; + /* non-PIC stubs. */ + : ((globals->use_blx) + /* V5T and above. */ + ? arm_stub_long_branch_any_any + /* V4T. */ + : arm_stub_long_branch_v4t_arm_thumb); } } else @@ -2900,7 +2915,9 @@ arm_type_of_stub (struct bfd_link_info *info, || (branch_offset < ARM_MAX_BWD_BRANCH_OFFSET)) { stub_type = (info->shared | globals->pic_veneer) + /* PIC stubs. */ ? arm_stub_long_branch_any_any_pic + /* non-PIC stubs. */ : arm_stub_long_branch_any_any; } } @@ -3188,7 +3205,7 @@ arm_build_one_stub (struct bfd_hash_entry *gen_entry, case arm_stub_long_branch_v4t_thumb_arm: _bfd_final_link_relocate (elf32_arm_howto_from_type (R_ARM_ABS32), stub_bfd, stub_sec, stub_sec->contents, - stub_entry->stub_offset + 16, sym_value, 0); + stub_entry->stub_offset + 8, sym_value, 0); break; case arm_stub_short_branch_v4t_thumb_arm: { @@ -11697,9 +11714,9 @@ arm_map_one_stub (struct bfd_hash_entry * gen_entry, return FALSE; if (!elf32_arm_output_map_sym (osi, ARM_MAP_THUMB, addr)) return FALSE; - if (!elf32_arm_output_map_sym (osi, ARM_MAP_ARM, addr + 8)) + if (!elf32_arm_output_map_sym (osi, ARM_MAP_ARM, addr + 4)) return FALSE; - if (!elf32_arm_output_map_sym (osi, ARM_MAP_DATA, addr + 16)) + if (!elf32_arm_output_map_sym (osi, ARM_MAP_DATA, addr + 8)) return FALSE; break; case arm_stub_short_branch_v4t_thumb_arm: diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 26238b5..2ba7fc8 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -957,6 +957,10 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_ALPHA_GPREL_HI16", "BFD_RELOC_ALPHA_GPREL_LO16", "BFD_RELOC_ALPHA_BRSGP", + "BFD_RELOC_ALPHA_NOP", + "BFD_RELOC_ALPHA_BSR", + "BFD_RELOC_ALPHA_LDA", + "BFD_RELOC_ALPHA_BOH", "BFD_RELOC_ALPHA_TLSGD", "BFD_RELOC_ALPHA_TLSLDM", "BFD_RELOC_ALPHA_DTPMOD64", diff --git a/bfd/makefile.vms b/bfd/makefile.vms index 963441a..2e2d2a1 100644 --- a/bfd/makefile.vms +++ b/bfd/makefile.vms @@ -36,13 +36,15 @@ endif CFLAGS=/include=([],[-.include])$(DEFS) else ifeq ($(ARCH),ALPHA) -DEFS=/define=(SELECT_VECS="&vms_alpha_vec",SELECT_ARCHITECTURES="&bfd_alpha_arch",\ -"HAVE_vms_alpha_vec=1","unlink=remove","DEBUGDIR=NULL") +DEFS=/define=(SELECT_VECS="&vms_alpha_vec",\ + SELECT_ARCHITECTURES="&bfd_alpha_arch",\ + "HAVE_vms_alpha_vec=1","unlink=remove","DEBUGDIR=NULL") else DEFS=/define=(SELECT_VECS="&vms_vax_vec",SELECT_ARCHITECTURES="&bfd_vax_arch",\ -"HAVE_vms_vax_vec=1","unlink=remove","const=") + "HAVE_vms_vax_vec=1","unlink=remove") endif -CFLAGS=/noopt/debug/show=incl/name=(as_is,shortened)/include=([],[-.include])$(DEFS)/warnings=disable=(missingreturn,longextern) +OPT=/noopt/debug +CFLAGS=/name=(as_is,shortened)/include=([],[-.include])$(DEFS)$(OPT) endif diff --git a/bfd/reloc.c b/bfd/reloc.c index 0c0fb1d..781147e 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -2110,6 +2110,30 @@ ENUMDOC STO_ALPHA_STD_GPLOAD. ENUM + BFD_RELOC_ALPHA_NOP +ENUMDOC + The NOP relocation outputs a NOP if the longword displacement + between two procedure entry points is < 2^21. + +ENUM + BFD_RELOC_ALPHA_BSR hooks/post-receive -- Repository for Project Archer.
next reply other threads:[~2009-02-23 14:09 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-02-23 14:09 jkratoch [this message] -- strict thread matches above, loose matches on Subject: below -- 2009-06-12 22:31 jkratoch 2009-06-09 21:46 jkratoch 2009-04-19 17:07 jkratoch 2009-03-27 13:26 jkratoch 2009-03-27 0:35 jkratoch 2009-03-20 17:08 jkratoch 2009-03-15 14:37 jkratoch 2009-03-12 20:10 jkratoch 2009-02-21 0:31 jkratoch 2009-02-09 14:35 jkratoch 2009-01-27 14:39 jkratoch 2009-01-15 12:13 jkratoch 2009-01-10 23:26 jkratoch 2009-01-07 23:23 jkratoch 2009-01-06 16:46 jkratoch 2008-12-28 15:46 jkratoch 2008-12-28 15:35 jkratoch 2008-12-22 18:33 jkratoch
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20090223140927.5838.qmail@sourceware.org \ --to=jkratoch@sourceware.org \ --cc=archer-commits@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).