aboutsummaryrefslogtreecommitdiff
path: root/bfd/vms-alpha.c
AgeCommit message (Collapse)AuthorFilesLines
2011-02-152011-02-15 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-1/+4
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Add a comment.
2011-01-18 Fix compilation for mingw64.Nick Clifton1-1/+1
* coffcode.h (coff_slurp_symbol_table): Add intptr_t intermediate typecast to avoid warning. * elf32-rx.c: Add "bfd_stdint.h" include required for int32_t type usage. * elfxx-ia64.c (elfNN_ia64_relax_br): Use intptr_t typeacast instead of long for pointer to avoid warning. (elfNN_ia64_relax_brl): Idem. (elfNN_ia64_install_value): Idem. * vms-alpha.c (_bfd_vms_slurp_etir): Idem.
2010-12-13 * aoutx.h (aout_link_check_ar_symbols): Formatting.Alan Modra1-8/+3
* cofflink.c (coff_link_check_ar_symbols): Likewise. * elflink.c (elf_link_add_archive_symbols): Likewise. * pdp11.c (aout_link_check_ar_symbols): Likewise. * xcofflink.c (xcoff_link_check_dynamic_ar_symbols, xcoff_link_check_dynamic_ar_symbols): Likewise. * aoutx.h (aout_link_check_archive_element): Simplify code dealing with add_archive_element substitute BFD. * cofflink.c (coff_link_check_archive_element): Likewise. * ecoff.c (ecoff_link_check_archive_element): Likewise. (ecoff_link_add_archive_symbols): Likewise. * linker.c (generic_link_check_archive_element): Likewise. * pdp11.c (aout_link_check_archive_element): Likewise. * vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise. * xcofflink.c (xcoff_link_check_archive_element): Likewise. * aoutx.h (aout_link_check_archive_element): Free symbols from old bfd if !keep_memory. * cofflink.c (coff_link_check_archive_element): Likewise. * pdp11.c (aout_link_check_archive_element): Likewise. * xcofflink.c (xcoff_link_check_archive_element): Likewise.
2010-10-14Applied patch series for LD plugin interface (six parts).Dave Korn1-3/+8
[PATCH] Add infrastructure for plugin API; functionality to follow. include/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 1/6). * plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member. ld/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 1/6). * configure.in: Add AC_CHECKs for file io and dlfcn headers and functions and AC_SEARCH for -ldl. (enable_plugins): New shell variable set if above tests find dlopen functionality. (ENABLE_PLUGINS): Add related automake conditional. * configure: Regenerate. * config.in: Likewise. * Makefile.am (PLUGIN_C): Declare plugin C source file, conditional on ENABLE_PLUGINS being defined. (PLUGIN_H): Likewise for header file. (PLUGIN_OBJECT): Likewise for object file. (PLUGIN_CFLAGS): Likewise -D flag required to compile plugin support. (AM_CPPFLAGS): Use PLUGIN_CFLAGS. (CFILES): Use PLUGIN_C. (HFILES): Use PLUGIN_H. (OFILES): Use PLUGIN_OBJECT. (ld_new_SOURCES): Use PLUGIN_C. (noinst_LTLIBRARIES)[ENABLE_PLUGINS]: Declare test plugin. (libldtestplug_la_SOURCES)[ENABLE_PLUGINS]: Add automake definition for test plugin. (libldtestplug_la_CFLAGS)[ENABLE_PLUGINS]: Likewise. (libldtestplug_la_LDFLAGS)[ENABLE_PLUGINS]: Likewise. * Makefile.in: Regenerate. * sysdep.h: Include stdarg.h, unistd.h and one of fcntl.h or sys/file.h where available. Include dlfcn.h when ENABLE_PLUGINS. (O_RDONLY): Supply default definition likewise to bfd's sysdep.h (O_WRONLY): Likewise. (O_RDWR): Likewise. (O_ACCMODE): Likewise. (O_BINARY): Likewise. (SEEK_SET): Likewise. (SEEK_CUR): Likewise. (SEEK_END): Likewise. * ldmisc.c (vfinfo): Make non-static. Add %p format char. * ldmisc.h (vfinfo): Declare extern prototype. * lexsup.c (enum option_values)[ENABLE_PLUGINS]: Add new entries for OPTION_PLUGIN and OPTION_PLUGIN_OPT. (ld_options[])[ENABLE_PLUGINS]: Add option data for the above two. (parse_args)[ENABLE_PLUGINS]: Handle them, and load all plugins once option parsing is complete. * ldmain.c (main)[ENABLE_PLUGINS]: Call plugin cleanup hooks just after lang_finish. * plugin.c: New source file. * plugin.h: Likewise new header. * testplug.c: New source file. ld/testsuite/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 1/6). * ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins are enabled. * lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output. (proc set_file_contents): Write a file with the supplied content. (run_ld_link_tests): Add new 'ld' action to test linker output. (proc check_plugin_api_available): Return true if linker under test supports the plugin API. * ld-plugin/func.c: New test source file. * ld-plugin/main.c: Likewise. * ld-plugin/text.c: Likewise. * ld-plugin/plugin-1.d: New dump test output pattern script. * ld-plugin/plugin-2.d: Likewise. * ld-plugin/plugin-3.d: Likewise. * ld-plugin/plugin-4.d: Likewise. * ld-plugin/plugin-5.d: Likewise. * ld-plugin/plugin.exp: New test control script. --- [PATCH] Implement claim file and all symbols read hooks and add symbols callback. ld/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 2/6). * ldfile.c (ldfile_try_open_bfd)[ENABLE_PLUGINS]: Don't return early during compat checks if they pass, instead offer any successfully opened and accepted file to the plugin claim file hooks chain. Create a dummy bfd to accept symbols added by the plugin, if the plugin claims the file. * ldlang.c (lang_process)[ENABLE_PLUGINS]: Call plugin all symbols read hook chain before ldemul_after_open. * ldlang.h (struct lang_input_statement_struct): Add new single-bit 'claimed' flag. * plugin.c (IRONLY_SUFFIX): New macro for dummy bfd file suffix. (IRONLY_SUFFIX_LEN): Length of the above string. (plugin_get_ir_dummy_bfd): New function to create the dummy bfd used to store symbols for ir-only files. (is_ir_dummy_bfd): New function to check if a bfd is ir-only. (asymbol_from_plugin_symbol): New function converts symbol formats. (add_symbols): Call it to convert plugin syms to bfd syms and add them to the dummy bfd. * plugin.h: Add missing include guards. (plugin_get_ir_dummy_bfd): Add prototype. (is_ir_dummy_bfd): Likewise. * testplug.c (TV_MESSAGE): New helper macro. (struct claim_file): New struct. (claim_file_t): New typedef. (tag_names[]): Make static and const. (claimfiles_list): New variable. (claimfiles_tail_chain_ptr): Likewise. (last_claimfile): Likewise. (record_claim_file): Record a file to claim on a singly-linked list. (parse_symdefstr): Parse an ASCII representation of a symbol from a plugin option into the fields of a struct ld_plugin_symbol. (record_claimed_file_symbol): Use it to parse plugin option for adding a symbol. (parse_option): Parse claim file and add symbol options. (dump_tv_tag): Use TV_MESSAGE. (onload): Likewise. (onclaim_file): Make static. Use TV_MESSAGE. Scan list of files to claim and claim this file if required, adding any symbols specified. (onall_symbols_read): Make static and use TV_MESSAGE. (oncleanup): Likewise. ld/testsuite/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 2/6). * ld-plugin/plugin-3.d: Enable regexes for new functionality. * ld-plugin/plugin-5.d: Likewise. * ld-plugin/plugin-6.d: New testcase. * ld-plugin/plugin-7.d: Likewise. * ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine whether symbols in plugin arguments need an underscore prefix. Add new plugin-6.d and plugin-7.d testcases. --- [PATCH] Implement get symbols callback. ld/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 3/6). * ldmain.c (notice)[ENABLE_PLUGINS]: Call plugin_notice. * plugin.c (non_ironly_hash): Add new bfd hash table. (plugin_load_plugins): Exit early if no plugins to load. If plugins do load successfully, set notice_all flag in link info. (get_symbols): Implement. (plugin_load_plugins): Exit early if no plugins to load, else after loading plugins successfully enable notice_all mode. (init_non_ironly_hash): Lazily init non_ironly_hash table. (plugin_notice): Record symbols referenced from non-IR files in the non_ironly_hash. Suppress tracing, cref generation and nocrossrefs tracking for symbols from dummy IR bfds. * plugin.h: Fix formatting. (plugin_notice): Add prototype. * testplug.c (dumpresolutions): New global var. (parse_options): Accept "dumpresolutions". (onall_symbols_read): Get syms and dump resolutions if it was given. ld/testsuite/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 3/6). * ld-plugin/plugin-8.d: New testcase. * ld-plugin/plugin.exp: Invoke it. --- [PATCH] Implement add input file, add input lib and set extra lib path callbacks. ld/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 4/6). * ldlang.c (lang_process)[ENABLE_PLUGINS]: Move invocation of plugin_call_all_symbols_read to before setting of gc_sym_list, and open any new input files that may have been added during it. * ldmain.c (multiple_definition)[ENABLE_PLUGINS]: Call out to plugin_multiple_definition and let it have first say over what to do with the clashing definitions. * plugin.c (no_more_claiming): New boolean variable. (plugin_cached_allow_multiple_defs): Likewise. (add_input_file): Implement. (add_input_library): Likewise. (set_extra_library_path): Likewise. (plugin_call_claim_file): Don't do anything when no_more_claiming set. (plugin_call_all_symbols_read): Set it. Disable link info "allow_multiple_definition" flag, but cache its value. (plugin_multiple_definition): New function. * plugin.h (plugin_multiple_definition): Add prototype. * testplug.c (addfile_enum_t): New enumerated typedef. (add_file_t): New struct typedef. (addfiles_list): New variable. (addfiles_tail_chain_ptr): Likewise. (record_add_file): New function. (parse_option): Parse "add:", "lib:" and "dir:" options and call it. (onall_symbols_read): Iterate the list of new files, libs and dirs, adding them. ld/testsuite/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 4/6). * ld-plugin/plugin-9.d: New testcase. * ld-plugin/plugin.exp: Invoke it. --- [PATCH] Add ELF symbol visibility support to plugin interface. ld/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 5/6). * plugin.c (asymbol_from_plugin_symbol): If the bfd is an ELF bfd, find the elf symbol data and set the visibility in the st_other field. ld/testsuite/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 5/6). * ld-plugin/plugin-ignore.d: New dump test control script. * ld-plugin/plugin-vis-1.d: Likewise. * ld-plugin/plugin.exp: Add list of ELF-only tests and run them if testing on an ELF target. --- [PATCH] Add archive support to plugin interface. bfd/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 6/6). * aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference parameter and pass it when invoking add_archive_element callback. (aout_link_check_archive_element): Handle substitute bfd if it was set during add_archive_element callback in the above. * cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference parameter and pass it when invoking add_archive_element callback. (coff_link_check_archive_element): Handle substitute bfd if it was set during add_archive_element callback in the above. * ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading code factored-out from ecoff_link_check_archive_element. (reread_ext_syms_and_strs): Clear old symbols and call it. (ecoff_link_check_archive_element): Use the above. Handle substitute BFD if one is set by add_archive_element callback. (ecoff_link_add_archive_symbols): Likewise allow bfd substitution. * elflink.c (elf_link_add_archive_symbols): Likewise. * linker.c (generic_link_check_archive_element): Likewise. * pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference parameter and pass it when invoking add_archive_element callback. (aout_link_check_archive_element): Handle substitute bfd if it was set during add_archive_element callback in the above. * vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute BFD if one is set by add_archive_element callback. * xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd" reference parameter and pass it when invoking add_archive_element callback. (xcoff_link_check_ar_symbols): Likewise. (xcoff_link_check_archive_element): Handle bfd substitution if it was set by callback in the above. include/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 6/6). * bfdlink.h (struct_bfd_link_callbacks): Document new argument to add_archive_element callback used to return a replacement bfd which is to be added to the hash table in place of the original element. ld/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 6/6). * ldlang.c (load_symbols): Handle bfd subsitution when calling the add_archive_element callback. * ldmain.c (add_archive_element)[ENABLE_PLUGINS]: Offer the archive member to the plugins and if claimed set "subsbfd" output parameter to point to the dummy IR-only BFD. ld/testsuite/ChangeLog: 2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com> Apply LD plugin patch series (part 6/6). * ld-plugin/plugin-10.d: New dump test control script. * ld-plugin/plugin-11.d: Likewise. * ld-plugin/plugin.exp: Run them. ---
2010-08-042010-08-04 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-2/+54
* vms-alpha.c (alpha_vms_build_fixups): Write the EICP. (alpha_vms_bfd_final_link): Explicitly forbid relocatable links. Clear the SEC_RELOC flag.
2010-08-042010-08-04 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-0/+12
* vms-alpha.c (alpha_vms_create_eisd_for_section): Make writable sections with relocs. (alpha_vms_add_fixup_lp): Set SEC_RELOC flag. (alpha_vms_add_fixup_ca): Ditto. (alpha_vms_add_fixup_qr): Ditto. Add comments.
2010-08-042010-08-04 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-1/+1
* vms-alpha.c (alpha_vms_create_eisd_for_section): Do not make CODE sections writable.
2010-08-042010-08-04 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-16/+6
* vms-alpha.c (alpha_vms_add_lw_fixup): Renamed to ... (alpha_vms_add_fixup_lr): ... this for consistency. (alpha_vms_add_qw_fixup): Removed. Fix some comments. (vms_get_symbol_info): Adjust type for unknown sections.
2010-08-042010-08-04 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-34/+37
* vms-alpha.c (_bfd_vms_slurp_egsd): Use the canonical absolute section for any absolute section. Remove some debugging code.
2010-08-032010-08-03 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-1/+1
* vms-alpha.c (_bfd_vms_slurp_egsd): Do not set SEC_HAS_CONTENTS nor SEC_RELOC for empty sections.
2010-08-032010-08-03 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-44/+44
* vms-alpha.c (evax_section_flags): Fix flags for absolute section. Remove useless parenthesis.
2010-06-27fix set but unused variable warningsAlan Modra1-5/+0
2010-06-252010-06-25 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-11/+31
* vms-alpha.c (_bfd_vms_write_egsd): Check absolute section with its flags. Create an absolute section if needed.
2010-06-252010-06-25 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-46/+43
* vms-alpha.c (_bfd_vms_write_egsd): Set target_index field of sections. Mark .vmsdebug section as SEC_DEBUGGING. Do not create dummy psect anymore. Adjust. (_bfd_vms_write_eeom): Adjust (use target_index instead of index) (_bfd_vms_write_etir): Ditto. (start_etir_or_etbt_record): Test for SEC_DEBUGGING instead of section name. Adjust.
2010-06-252010-06-25 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-2/+10
* vms-alpha.c (alpha_vms_write_exec): Set linktime field.
2010-06-11bfd/Jan Kratochvil1-1/+1
* vms-alpha.c (_bfd_vms_write_egsd): Make sname const.
2010-06-112010-06-11 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-6/+12
* vms-alpha.c (_bfd_vms_slurp_egsd): Always set vma of absolute sections to 0.
2010-06-112010-06-11 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-0/+4
* vms-alpha.c (evax_bfd_print_etir): Handle ETIR__C_STO_GBL_LW.
2010-06-112010-06-11 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-11/+10
* vms-misc.c (_bfd_vms_output_counted): Make VALUE argument const. Adjust cast. (_bfd_vms_output_dump): Make DATA argument const, adjust cast. * vms.h (_bfd_vms_output_counted, _bfd_vms_output_dump): Adjust. * vms-alpha.c (evax_section_flags): Make it const. (vms_secflag_by_name): Remove unused ABFD argument. Make SECTION_FLAGS and NAME arguments const. Clarify comment. (vms_esecflag_by_name): Make SECTION_FLAGS and NAME arguments const. (_bfd_vms_slurp_egsd): Adjust call to vms_secflag_by_name. (_bfd_vms_write_egsd): Remove useless cast.
2010-06-022010-06-02 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-1/+1
* vms-alpha.c (alpha_vms_bfd_final_link): Fix 64bit constant.
2010-06-01bfd/Tristan Gingold1-12/+36
2010-06-01 Tristan Gingold <gingold@adacore.com> * vms-alpha.c (struct vms_private_data_struct): Add transfer_address field. Remove unused dst_info field. (alpha_vms_write_exec): Use transfer_address. (_bfd_vms_write_egsd): Add a comment about LIB$INITIALIZE. (alpha_vms_bfd_final_link): Set transfer_address. ld/ 2010-06-01 Tristan Gingold <gingold@adacore.com> * scripttempl/alphavms.sc: Add comments. Move $LINK$ to the readonly output-section. Handle LIB$INITIALIZE and sections created by gcc. * emultempl/vms.em (vms_place_orphan): Add comments.
2010-05-312010-05-31 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-1/+1
* vms-lib.c (credat_lo, credat_hi): New fields. (vms_read_block): Adjust comments. (vms_write_block): New function. (_bfd_vms_lib_archive_p): Decode majorid once. Replace some hard-coded values with constants. Set credat_lo and credat_hi. (_bfd_vms_lib_mkarchive): Add argument kind. Set ver, mhd_size and type according to kind. (_bfd_vms_lib_alpha_mkarchive): New function. (struct lib_index): Renamed from struct vms_index (lib_index_cmp): Renamed from vms_index_cmp. Adjusted. (get_idxlen): Type of idx argument adjusted. Add is_elfidx argument and handle it. (vms_write_index): Adjust argument idx. Handle elf indexes. (_bfd_vms_lib_build_map): Adjust type of arguments modules and res. (_bfd_vms_lib_write_archive_contents): Add is_elfidx variable and use it. Handle elf indexes. Set credat. * libbfd-in.h (_bfd_vms_lib_mkarchive): Renamed to ... (_bfd_vms_lib_alpha_mkarchive): ... this. * libbfd.h: Regenerated. * vms-alpha.c (vms_alpha_vec): Adjust after previous renaming.
2010-05-262010-05-26 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-8/+160
* vms-alpha.c: Update comments. (alpha_vms_write_exec): Set lnkflags. Write the GST. (alpha_vms_link_output_symbol): New function. (alpha_vms_bfd_final_link): Generate the VMS symbol table. Set dst_section private field. (alpha_vms_bfd_final_link): Remove code that set dst_section.
2010-05-252010-05-25 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-75/+23
* vms-alpha.c (struct vms_symbol_entry): Field section is now an asection pointer. Ditto for code_section. (_bfd_vms_slurp_egsd): Adjust for above change. (vms_get_symbol_info): Ditto. (alpha_vms_convert_symbol): Ditto. Remove special dwarf2 case. Remove commented out code. (alpha_vms_get_synthetic_symtab): Simplify thanks to the above change. (alpha_vms_get_sym_value): Remove struct alpha_vms_link_hash_entry parameter. Simplify the code. (_bfd_vms_slurp_etir): Adjust for above change.
2010-05-25 PR ld/11624Nick Clifton1-1/+1
* archive.c (_bfd_calloc_wrapper): New function. (_bfd_add_bfd_to_archive_cache): Use it. * configure.in: Add alpha*-*-*vms* to list of natives. * configure: Regenerate. * vms-misc.c: Define globalref if necessary. (vms_convert_to_var_unix_filename): Rename to _bfd_vms_convert_to_var_unix_filename and export. * vms.h: Add prototype for _bfd_vms_convert_to_var_unix_filename. * vms-alpha.c (vms_close_and_cleanup): Update invocation of vms_convert_to_var_unix_filename.
2010-05-242010-05-24 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-17/+29
* vms-alpha.c (add_symbol_entry): New function extrated from ... (add_symbol): ... adjusted.
2010-05-242010-05-24 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-21/+24
* vms-alpha.c (struct vms_private_data_struct): Add section_max field. (_bfd_vms_slurp_egsd): Put PSC into the sections array. (vms_new_section_hook): Do not put section in the sections array.
2010-05-242010-05-24 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-4/+6
* vms-alpha.c (_bfd_vms_slurp_egsd): Fix indentation. (alpha_vms_write_exec): Add a comment. (_bfd_vms_write_egsd): Ditto. (alpha_vms_convert_symbol): Remove a blank line.
2010-05-212010-05-21 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-12/+0
* vms-alpha.c (_bfd_vms_slurp_eihs): Do not create a bfd section for the GST.
2010-05-212010-05-21 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-5/+8
* vms-alpha.c (_bfd_vms_slurp_eisd): Set SEC_HAS_CONTENTS and SEC_LOAD if isect has data. (vms_get_symbol_info): Refine the condition for 'T' type.
2010-05-182010-05-18 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-147/+174
* vms-alpha.c (_bfd_vms_write_emh): New function. (_bfd_vms_write_lmn): New function. (_bfd_vms_write_eeom): Moved. (hash_string): Likewise. (_bfd_vms_length_hash_symbol): Likewise. (_bfd_vms_write_ehdr): Code moved to _bfd_vms_write_emh and _bfd_vms_write_lmn, and call these functions.
2010-05-182010-05-18 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-8/+14
* vms-alpha.c (evax_bfd_print_dst): Handle INCR_LINUM_L. Add details in the messages. (evax_bfd_print_image): Change message.
2010-05-17bfd/Tristan Gingold1-27/+86
2010-05-17 Tristan Gingold <gingold@adacore.com> * vms-alpha.c: Include esgps.h and eidc.h. (_bfd_vms_slurp_egsd): Ignore SPSC and IDC sub-records. (evax_bfd_print_egsd_flags): New function, extracted from ... (evax_bfd_print_egsd): ..., calls evax_bfd_print_egsd_flags. Handles EGSD__C_SPSC and EGSD__C_IDC. include/vms: 2010-05-17 Tristan Gingold <gingold@adacore.com> * eidc.h: New file. * esgps.h: New file.
2010-05-142010-05-14 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-1/+5
* vms-alpha.c (alpha_vms_object_p): Accept header size of 0. (_bfd_vms_get_object_record): Handle align byte only in the foreign case.
2010-05-03bfd/Tristan Gingold1-12/+19
2010-05-03 Tristan Gingold <gingold@adacore.com> * vms-lib.c (vms_lib_bopen): Fix the size threshold to read selective_search flag. Add comments. * vms-alpha.c (alpha_vms_bfd_final_link): Create the DMT section before output_has_begun is set.
2010-05-03bfd/Tristan Gingold1-49/+127
2010-05-03 Tristan Gingold <gingold@adacore.com> * vms-alpha.c: Add comments. (struct vms_private_data_struct): Remove image_autoextend field. (dst_check_allocation): Removed. (image_write): Remove call to dst_check_allocation. (vms_slurp_debug): Do not set image_autoextend. Adjust section size. (_bfd_vms_slurp_object_records): Remove useless new_type variable. (alpha_vms_write_exec): Use dst_section to get the dst section. Write the dmt section. (evax_bfd_print_image): Also print the dst size in hexa. Fix typo. (alpha_vms_read_sections_content): Do not set image_autoextend. include/vms/ 2010-05-03 Tristan Gingold <gingold@adacore.com> * dmt.h: Improve comments.
2010-04-30bfd/Tristan Gingold1-4/+4
2010-04-30 Tristan Gingold <gingold@adacore.com> * vms-lib.c (struct lib_tdata): Field artdata added, fields nbr_syms and syms removed. (struct carsym_mem): New structure. (vms_add_index): New function. (vms_add_indexes_from_list): New function. (vms_traverse_index): Parameter carsym changed to carsym_mem. Code adjusted to handle elfidx. (vms_lib_read_index): Adjusted for vms_traverse_index changes. Parameter NBREL is now a pointer. (_bfd_vms_lib_archive_p): Adjust for above change. Handle ia64 archives. (_bfd_vms_lib_mkarchive): Adjusted for changes in struct lib_tdata. (_bfd_vms_lib_find_symbol): Ditto. (vms_lib_bopen): Fix two typos: return FALSE in case of error, check MHD id. * vms-alpha.c (alpha_vms_link_add_archive_symbols): Adjust for changes of _bfd_vms_lib_find_symbol. include/vms 2010-04-30 Tristan Gingold <gingold@adacore.com> * lbr.h (LBR__C_TYP_ISHSTB): Added. (LHD_SANEID4): Renamed to ... (LHD_SANEID6): ... this. (LBR_MAJORID, LBR_ELFMAJORID): New macros. (struct vms_rfa): New structure. (struct vms_idxdef): Renamed to ... (struct vms_idx): ... this. (struct vms_idxdef2): Renamed to ... (struct vms_elfidx): ... this. (ELFIDX__WEAK, ELFIDX__GROUP, ELFIDX__LISTRFA, ELFIDX__SYMESC): New macros. (struct vms_lhs, struct vms_lns): New structures. (struct vms_mhd): Add missing fields. (MHD__C_MHDLEN): New macro.
2010-04-162010-04-16 Andreas Schwab <schwab@redhat.com>Tristan Gingold1-1/+4
* vms-alpha.c (alpha_vms_link_add_object_symbols): Avoid breaking strict-aliasing rules.
2010-04-162010-04-16 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-13/+4
* vms-alpha.c (_bfd_vms_slurp_eihd): Fix typo. (_bfd_vms_get_object_record): Always assume there is a pad byte for alignment. * vms-lib.c: Add a few comments.
2010-04-142010-04-14 Tristan Gingold <gingold@adacore.com>Tristan Gingold1-0/+8968
* Makefile.am (BFD32_BACKENDS): Remove vms-gsd.lo, vms-hdr.lo, vms-tir.lo, vms.lo and add vms-alpha.lo (BFD32_BACKENDS_CFILES): Remove vms-gsd.c, vms-hdr.c, vms-tir.c, vms.c and add vms-alpha.c * Makefile.in: Regenerate. * configure.in (TDEFINES): Adjust file list for vms_alpha_vec. Remove vms_vax_vec. * configure: Regenerate. * targets.c (vms_vax_vec): Remove the declaration. (_bfd_target_vector): Remove vms_vax_vec. * vms-alpha.c: New file. * vms-gsd.c: Removed, rewritten in vms-alpha.c * vms-hdr.c: Ditto. * vms-tir.c: Ditto. * vms.c: Ditto. * vms-misc.c: Fix indentation and comments. Replace most of #if VMS_DEBUG/vms_debug with vms_debug2. (_bfd_vms_hash_newfunc): Moved to vms-alpha.c (hash_string): Ditto. (_bfd_vms_length_hash_symbol): Ditto. (maybe_adjust_record_pointer_for_object): Ditto. (_bfd_vms_get_object_record): Ditto. (vms_get_remaining_object_record): Ditto. (_bfd_vms_push): Ditto. (_bfd_vms_pop): Ditto. (_bfd_vms_get_header_values): Removed. (_bfd_vms_get_first_record): Removed. (vms_get_remaining_image_record): Removed. (new_symbol): Removed. (_bfd_vms_enter_symbol): Removed. (_bfd_vms_save_sized_string): Use memcpy instead of strncpy. (_bfd_vms_output_begin): Remove rechead parameter. Replace bfd parameter with struct vms_rec_wr. (_bfd_vms_output_push): Removed and replaced by ... (_bfd_vms_output_begin_subrec): ... new function. (_bfd_vms_output_alignment): Replace bfd parameter with struct vms_rec_wr, and adjust. (_bfd_vms_output_check): Ditto (_bfd_vms_output_byte): Ditto. (_bfd_vms_output_short): Ditto. (_bfd_vms_output_long): Ditto. (_bfd_vms_output_quad): Ditto. (_bfd_vms_output_counted): Ditto. (_bfd_vms_output_dump): Ditto. (_bfd_vms_output_fill): Ditto. (_bfd_vms_output_pop): Removed and replaced by ... (_bfd_vms_output_end_subrec): ... new function. (_bfd_vms_output_flush): Removed. (_bfd_vms_output_align): New function. (_bfd_vms_output_end): Add recwr parameter. Adjust for this new parameter. (vms_convert_to_var): New function imported from vms.c (vms_convert_to_var_1): Ditto. (vms_convert_to_var_unix_filename): Ditto. (vms_get_module_name): Ditto. (get_vms_time_string): Ditto. (vms_time_to_time_t): Ditto. (vms_rawtime_to_time_t): Ditto. * vms.h: All macros for the VMS file format are now in include/vms. Prototypes for vms.c, vms-gsd.c, vms-misc.c, vms-hdr.c, vms-tir.c have been removed. (struct vms_symbol_struct, struct stack_struct): Moved to vms-alpha.c (struct fileinfo, struct srecinfo, struct lineinfo): Ditto. (struct funcinfo, struct vms_private_data_struct): Ditto. (struct vms_section_data_struct): Ditto. (struct vms_rec_rd, stryct vms_rec_wr): New declarations. (vms_get_module_name, get_vms_time_string): New declarations. (vms_time_to_time_t, vms_rawtime_to_time_t): Ditto. (_bfd_vms_output_begin_subrec, _bfd_vms_output_end_subrec): Ditto. (_bfd_vms_save_sized_string, _bfd_vms_save_counted_string): Adjusted. (_bfd_vms_output_begin, _bfd_vms_output_alignment): Ditto. (_bfd_vms_output_end,_bfd_vms_output_check): Ditto. (_bfd_vms_output_byte, _bfd_vms_output_short): Ditto. (_bfd_vms_output_long, _bfd_vms_output_quad): Ditto. (_bfd_vms_output_counted, _bfd_vms_output_dump): Ditto. (_bfd_vms_output_fill): Ditto. (bfd_vms_set_section_flags): Ditto.