aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2020-01-03Mach-O: misc build adjustmentsJan Beulich2-19/+25
Oldish gcc warns about local variables shadowing outer scope ones. Additionally %lx is not (always) suitable to print the result of bfd_get_32().
2020-01-03Automatic date update in version.inGDB Administrator1-1/+1
2020-01-02Add support for the GBZ80, Z180, and eZ80 variants of the Z80 architecure. ↵Sergey Belyashov17-1662/+2523
Add an ELF based target for these as well. PR 25224 bfd * Makefile.am: Add z80-elf target support. * configure.ac: Likewise. * targets.c: Likewise. * config.bfd: Add z80-elf target support and new arches: ez80 and z180. * elf32-z80.c: New file. * archures.c: Add new z80 architectures: eZ80 and Z180. * coffcode.h: Likewise. * cpu-z80.c: Likewise. * bfd-in2.h: Likewise plus additional Z80 relocations. * coff-z80.c: Add new relocations for Z80 target and local label check. gas * config/tc-z80.c: Add new architectures: Z180 and eZ80. Add support for assembler code generated by SDCC. Add new relocation types. Add z80-elf target support. * config/tc-z80.h: Add z80-elf target support. Enable dollar local labels. Local labels starts from ".L". * testsuite/gas/all/fwdexp.d: Fix failure due to symbol conflict. * testsuite/gas/all/fwdexp.s: Likewise. * testsuite/gas/z80/suffix.d: Fix failure on ELF target. * testsuite/gas/z80/z80.exp: Add new tests * testsuite/gas/z80/dollar.d: New file. * testsuite/gas/z80/dollar.s: New file. * testsuite/gas/z80/ez80_adl_all.d: New file. * testsuite/gas/z80/ez80_adl_all.s: New file. * testsuite/gas/z80/ez80_adl_suf.d: New file. * testsuite/gas/z80/ez80_isuf.s: New file. * testsuite/gas/z80/ez80_z80_all.d: New file. * testsuite/gas/z80/ez80_z80_all.s: New file. * testsuite/gas/z80/ez80_z80_suf.d: New file. * testsuite/gas/z80/r800_extra.d: New file. * testsuite/gas/z80/r800_extra.s: New file. * testsuite/gas/z80/r800_ii8.d: New file. * testsuite/gas/z80/r800_z80_doc.d: New file. * testsuite/gas/z80/z180.d: New file. * testsuite/gas/z80/z180.s: New file. * testsuite/gas/z80/z180_z80_doc.d: New file. * testsuite/gas/z80/z80_doc.d: New file. * testsuite/gas/z80/z80_doc.s: New file. * testsuite/gas/z80/z80_ii8.d: New file. * testsuite/gas/z80/z80_ii8.s: New file. * testsuite/gas/z80/z80_in_f_c.d: New file. * testsuite/gas/z80/z80_in_f_c.s: New file. * testsuite/gas/z80/z80_op_ii_ld.d: New file. * testsuite/gas/z80/z80_op_ii_ld.s: New file. * testsuite/gas/z80/z80_out_c_0.d: New file. * testsuite/gas/z80/z80_out_c_0.s: New file. * testsuite/gas/z80/z80_reloc.d: New file. * testsuite/gas/z80/z80_reloc.s: New file. * testsuite/gas/z80/z80_sli.d: New file. * testsuite/gas/z80/z80_sli.s: New file. ld * Makefile.am: Add new target z80-elf * configure.tgt: Likewise. * emultempl/z80.em: Add support for eZ80 and Z180 architectures. * emulparams/elf32z80.sh: New file. * emultempl/z80elf.em: Likewise. * testsuite/ld-z80/arch_ez80_adl.d: Likewise. * testsuite/ld-z80/arch_ez80_z80.d: Likewise. * testsuite/ld-z80/arch_r800.d: Likewise. * testsuite/ld-z80/arch_z180.d: Likewise. * testsuite/ld-z80/arch_z80.d: Likewise. * testsuite/ld-z80/comb_arch_ez80_z80.d: Likewise. * testsuite/ld-z80/comb_arch_z180.d: Likewise. * testsuite/ld-z80/labels.s: Likewise. * testsuite/ld-z80/relocs.s: Likewise. * testsuite/ld-z80/relocs_b_ez80.d: Likewise. * testsuite/ld-z80/relocs_b_z80.d: Likewise. * testsuite/ld-z80/relocs_f_z80.d: Likewise. * testsuite/ld-z80/z80.exp: Likewise. opcodes * z80-dis.c: Add support for eZ80 and Z80 instructions.
2020-01-02AArch64: Set the correct ELF class for AArch64 stubs (PR/25210)Tamar Christina2-0/+10
This fixes PR 25210 by specifying the the correct ELF class for AArch64 stubs. After doing this the stub section starts behaving like a normal object file loaded from disk. That is SEC_LINKER_CREATED causes us to have to write the section manually. This flag was added as a fix for PR 24753. I believe that fix to still be correct as linker created sections don't have a size on disk and it fixes the Arm bootstrap regression. But in this case specifying the correct section class also makes the stub section not be considered by compress.c. So I'm partially revert this change so that we don't have to manage the section manually as implied by SEC_LINKER_CREATED. bfd/ChangeLog: PR 25210 PR 24753 * elfnn-aarch64.c (_bfd_aarch64_create_stub_section): Set ELF class. ld/ChangeLog: PR 25210 PR 24753 * emultempl/aarch64elf.em (elf${ELFSIZE}_aarch64_add_stub_section): Remove SEC_LINKER_CREATED. * testsuite/ld-aarch64/aarch64-elf.exp: Add erratum835769-843419. * testsuite/ld-aarch64/erratum835769-843419.d: New test.
2020-01-02Automatic date update in version.inGDB Administrator1-1/+1
2020-01-01Re: Update year range in copyright notice of binutils filesAlan Modra1-0/+4
Add the ChangeLog entry.
2020-01-01Update year range in copyright notice of binutils filesAlan Modra429-434/+434
2020-01-01ChangeLog rotationAlan Modra2-3173/+3187
2020-01-01Automatic date update in version.inGDB Administrator1-1/+1
2019-12-31asan: alpha-vms: Heap-buffer-overflowAlan Modra2-51/+53
This fixes yet more errors in the alpha-vms buffer size checks. * vms-alpha.c (_bfd_vms_slurp_eisd): Don't overflow when checking offset. Don't overflow when checking rec_size, and do allow rec_size to the end of the buffer. Ensure eisd->type can be accessed, not just the first 32 bytes. Don't call _bfd_vms_save_counted_string with zero length remaining. Fail on empty string section name. (_bfd_vms_slurp_egsd): Formatting. Catch more reads past end of record size. Correct remaining length calculation. Fail on empty string section name. Consolidate error paths.
2019-12-31Automatic date update in version.inGDB Administrator1-1/+1
2019-12-30vms-alpha.c object_p memory leaksAlan Modra2-12/+28
* vms-alpha.c (alpha_vms_free_private): New function, extracted.. (vms_close_and_cleanup): ..from here. (alpha_vms_object_p): Call alpha_vms_free_private on failure.
2019-12-30coff object_p memory leaksAlan Modra2-0/+7
* coffgen.c (coff_real_object_p): Free malloc'd memory on failure.
2019-12-30archive.c bfd_zallocAlan Modra2-25/+32
Quite a few bfd_zalloc calls are wasting time clearing memory, and should be bfd_alloc instead. * archive.c (do_slurp_bsd_armap): Use bfd_alloc rather than bfd_zalloc when memory is all written after the call. (do_slurp_coff_armap): Likewise. Set bfd_error on ridiculously large allocations that overflow bfd_size_type. Use just one bfd_release on error exit. (_bfd_slurp_extended_name_table): Use bfd_alloc for extended_names, clear last byte rather than the entire array. Use bfd_alloc for string table. Rearrange and simplify code copying file names.
2019-12-30Automatic date update in version.inGDB Administrator1-1/+1
2019-12-29ubsan: alpha-vms: shift exponent is too largeAlan Modra2-9/+14
* vms-alpha.c (_bfd_vms_slurp_egsd): Make base_addr a bfd_vma. Limit alignment power. Correct and simplify alignment expression. (evax_bfd_print_relocation_records): Avoid signed shift left.
2019-12-29asan: alpha-vms: memory leaksAlan Modra4-50/+99
* vms-misc.c (_bfd_vms_save_sized_string): Add abfd param, make size a size_t. Use bfd_alloc rather than bfd_malloc. (_bfd_vms_save_counted_string): Similarly. * vms.h (_bfd_vms_save_sized_string): Update prototype. (_bfd_vms_save_counted_string): Likewise. * vms-alpha.c (_bfd_vms_slurp_ehdr): Adjust _bfd_vms_save_counted_string and bfd_vms_save_sized_string calls. (_bfd_vms_slurp_egsd, parse_module): Likewise. (_bfd_vms_slurp_eisd): Likewise. Check return status. (alpha_vms_bfd_link_hash_table_free): New function. (alpha_vms_bfd_link_hash_table_create): Arrange to call it. (vms_close_and_cleanup): Free more memory. Don't release tdata.
2019-12-29coff_close_and_cleanupAlan Modra5-1/+27
Fixes leaks in _bfd_coff_get_external_symbols and _bfd_coff_read_string_table. * coffcode.h (coff_close_and_cleanup): Redefine to.. * coffgen.c (_bfd_coff_close_and_cleanup): ..this. New function. * libcoff-in.h (_bfd_coff_close_and_cleanup): Declare. * libcoff.h: Regenerate.
2019-12-29PR15350, Fix compressed debug sections for PE targetsAlan Modra2-43/+48
PR 15350 * bfd.c (bfd_update_compression_header): Write zlib header for formats other than ELF too.
2019-12-29Automatic date update in version.inGDB Administrator1-1/+1
2019-12-28Automatic date update in version.inGDB Administrator1-1/+1
2019-12-27Automatic date update in version.inGDB Administrator1-1/+1
2019-12-26asan: som: heap-buffer-overflowAlan Modra2-48/+69
Triggered by overflow of size calulation resulting in a too small buffer. The testcase found one of the som_bfd_count_ar_symbols problems. * som.c (setup_sections): Don't overflow space_strings_size. Use bfd_malloc2 to catch overflow of size calculation. (som_prep_for_fixups): Use bfd_zalloc2 to catch overflow of size calculation. (som_build_and_write_symbol_table): Similarly use bfd_zmalloc2. (som_slurp_symbol_table): Similarly use bfd_zmalloc2, bfd_malloc2, and bfd_zalloc2. (bfd_som_attach_aux_hdr): Use size_t vars for string length. (som_bfd_count_ar_symbols): Use bfd_malloc2 to catch overflow of size calculation. Use size_t vars for length and catch overflow. (som_slurp_armap): Use bfd_alloc2 to catch overflow of size calculation. (som_bfd_ar_write_symbol_stuff): Similarly use bfd_zmalloc2 and bfd_malloc2. Perform size calculations in bfd_size_type.
2019-12-26pe_bfd_read_buildid memory leakHannes Domani2-0/+6
* peicode.h (pe_bfd_read_buildid): Free data.
2019-12-26Automatic date update in version.inGDB Administrator1-1/+1
2019-12-25Automatic date update in version.inGDB Administrator1-1/+1
2019-12-24Automatic date update in version.inGDB Administrator1-1/+1
2019-12-23asan: vms-alpha: heap-buffer-overflowAlan Modra2-16/+49
Two buffer overflows, and some over restrictive length checks. * vms-alpha.c (add_symbol): Add "max" parameter. Error on string length larger than max. (_bfd_vms_slurp_egsd): Ensure record is at least large enough to read string length byte, error if not. Pass size to add_symbol. (_bfd_vms_slurp_etir): Don't read past end of buffer when reading type and length. Allow read of last byte in buffer.
2019-12-23ubsan: wasm: shift is too large for 64-bit type 'bfd_vma'Alan Modra2-8/+20
bfd/ * wasm-module.c (wasm_read_leb128): Don't allow oversize shifts. Catch value overflow. Sign extend only on terminating byte. opcodes/ * wasm32-dis.c (wasm_read_leb128): Don't allow oversize shifts. Catch value overflow. Sign extend only on terminating byte.
2019-12-23Automatic date update in version.inGDB Administrator1-1/+1
2019-12-22Automatic date update in version.inGDB Administrator1-1/+1
2019-12-21Automatic date update in version.inGDB Administrator1-1/+1
2019-12-20ubsan: xtensa: left shift cannot be represented in type 'int'Alan Modra2-1/+5
* xtensa-isa.c (xtensa_insnbuf_from_chars): Avoid signed overflow.
2019-12-20ubsan: hppa: left shift of negative valueAlan Modra2-52/+43
bfd/ * libhppa.h (hppa_field_adjust, bfd_hppa_insn2fmt): Delete forward declaration. Move ATTRIBUTE_UNUSED to definition. (sign_extend, low_sign_extend, sign_unext, low_sign_unext), (re_assemble_3, re_assemble_12, re_assemble_14, re_assemble_16), (re_assemble_17, re_assemble_21, re_assemble_22): Likewise. Make args and return value unsigned. Use unsigned variables. (hppa_rebuild_insn): Similarly. opcodes/ * hppa-dis.c (extract_16, extract_21, print_insn_hppa): Use unsigned variables.
2019-12-20bfd_check_format memory leakAlan Modra2-0/+7
* format.c (bfd_check_format_matches): Free matching_vector when not returning matching target strings.
2019-12-20coff-alpha memory leakAlan Modra2-1/+8
* coff-alpha.c (alpha_ecoff_read_ar_hdr): Free ar_hdr on error return.
2019-12-20Automatic date update in version.inGDB Administrator1-1/+1
2019-12-19xcoff slurp_armap bounds checkingAlan Modra3-6/+40
"count * 8 >= size" might overflow, "count >= size / 8" doesn't. * coff-rs6000.c (_bfd_xcoff_slurp_armap): Don't overflow when checking symbol count against section size. Guard against strlen running off end of buffer by allocating one more byte and zeroing. * coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
2019-12-19PowerPC, use size_t rather than long for indicesAlan Modra3-3/+9
This is fussing about nothing really but since I was looking at signed vs. unsigned issues, I decided to use the correct types here. * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Use size_t for vars. * elf64-ppc.c (sym_exists_at): Use size_t for lo, hi and mid.
2019-12-19Automatic date update in version.inGDB Administrator1-1/+1
2019-12-18Yet more signed overflow fixesAlan Modra7-110/+122
* elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): Avoid signed overflow. * elf32-hppa.c (final_link_relocate): Likewise. * elf32-ppc.c (_bfd_elf_ppc_at_tls_transform): Likewise. (_bfd_elf_ppc_at_tprel_transform, is_insn_ds_form): Likewise. (is_insn_dq_form, ppc_elf_relocate_section): Likewise. * elf64-ppc.c (ok_lo_toc_insn, ppc64_elf_edit_toc): Likewise. (ppc64_elf_relocate_section): Likewise. * elfxx-mips.c (mips_elf_perform_relocation): Likewise. * netbsd.h (N_SET_FLAGS): Likewise.
2019-12-18Automatic date update in version.inGDB Administrator1-1/+1
2019-12-17Remove tic80 supportAlan Modra14-805/+18
This is one way of fixing ubsan bug reports, just delete the code. The assembler support was removed back in 2005 along with other non-BFD assemblers, but somehow the remainder of the port stayed in. bfd/ * coff-tic80.c: Delete file. * cpu-tic80.c: Delete file. * archures.c: Remove tic80 support. * coffcode.h: Likewise. * coffswap.h: Likewise. * targets.c: Likewise. * config.bfd: Likewise. * configure.ac: Likewise. * Makefile.am: Likewise. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * configure: Regenerate. * po/SRC-POTFILES.in: Regenerate. binutils/ * testsuite/binutils-all/objcopy.exp: Remove tic80 support. * testsuite/binutils-all/objdump.exp: Likewise. gas/ * doc/as.texi: Remove mention of tic80. include/ * coff/tic80.h: Delete file. * opcode/tic80.h: Delete file. ld/ * emulparams/tic80coff.sh: Delete file. * scripttempl/tic80coff.sc: Delete file. * configure.tgt: Remove tic80 support. * Makefile.am: Likewise. * Makefile.in: Regenerate. * po/BLD-POTFILES.in: Regenerate. opcodes/ * tic80-dis.c: Delete file. * tic80-opc.c: Delete file. * disassemble.c: Remove tic80 support. * disassemble.h: Likewise. * Makefile.am: Likewise. * configure.ac: Likewise. * Makefile.in: Regenerate. * configure: Regenerate. * po/POTFILES.in: Regenerate.
2019-12-17Automatic date update in version.inGDB Administrator1-1/+1
2019-12-16Automatic date update in version.inGDB Administrator1-1/+1
2019-12-15Automatic date update in version.inGDB Administrator1-1/+1
2019-12-14Automatic date update in version.inGDB Administrator1-1/+1
2019-12-13Set no file contents PT_LOAD p_offset to first pageAlan Modra2-1/+16
PR 25237 * elf.c (assign_file_positions_for_load_sections): Attempt to keep meaningless p_offset for PT_LOAD segments without file contents within file size.
2019-12-13Automatic date update in version.inGDB Administrator1-1/+1
2019-12-12Remove duplicate castAlan Modra3-2/+7
* libbfd.c (bfd_get): Don't cast result of bfd_get_8. * bfd-in2.h: Regenerate.