summaryrefslogtreecommitdiff
path: root/gold/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* Add an option to the gold linker to put its version string into the .comment ↵Nick Clifton2023-03-271-0/+7
| | | | | | | | section. PR 30187 * options.h (class General_options): Add enable-linker-version. * layout.cc (Layout::create_gold_note): If linker-version is enabled put the version string into the .comment section.
* Updated translations for various languages and sub-directoriesNick Clifton2023-01-031-0/+5
|
* Update year range in copyright notice of binutils filesAlan Modra2023-01-011-1/+1
| | | | | | The newer update-copyright.py fixes file encoding too, removing cr/lf on binutils/bfdtest2.c and ld/testsuite/ld-cygwin/exe-export.exp, and embedded cr in binutils/testsuite/binutils-all/ar.exp string match.
* Add markers for 2.40 branchNick Clifton2022-12-311-0/+4
|
* New Romainian translation for the GOLD subdirectory.Nick Clifton2022-12-191-0/+4
|
* Add markers for 2.39 branchNick Clifton2022-07-081-0/+4
|
* Have gold's File_read::do_read() function check the start parameterNick Clifton2022-06-271-0/+6
| | | | | | PR 23765 * fileread.cc (File_read::do_read): Check start parameter before computing number of bytes to read.
* Fix compile time warning building gold with Clang-14.Nick Clifton2022-05-181-0/+5
| | | | | * int_encoding.cc (get_length_as_unsigned_LEB_128): Remove current_length variable.
* Updated Serbian translations for the bfd, gold, ld and opcodes directoriesNick Clifton2022-02-171-0/+4
|
* Updated French translation for the ld/ and gold/ sub-directoriesNick Clifton2022-02-021-0/+4
|
* Update Bulgarian, French, Romaniam and Ukranian translation for some of the ↵Nick Clifton2022-01-241-0/+4
| | | | sub-directories
* Change version number to 2.38.50 and regenerate filesNick Clifton2022-01-221-0/+7
|
* Add markers for 2.38 branchNick Clifton2022-01-221-0/+4
|
* Update year range in copyright notice of binutils filesAlan Modra2022-01-021-1/+1
| | | | | | | | | | The result of running etc/update-copyright.py --this-year, fixing all the files whose mode is changed by the script, plus a build with --enable-maintainer-mode --enable-cgen-maint=yes, then checking out */po/*.pot which we don't update frequently. The copy of cgen was with commit d1dd5fcc38ead reverted as that commit breaks building of bfp opcodes files.
* Updated Serbian and Russian translations for various sub-directoriesNick Clifton2021-08-101-0/+4
|
* PR28106, build of 2.37 fails on FreeBSD and ClangAlan Modra2021-07-201-0/+6
| | | | | | | | | | | https://en.cppreference.com/w/cpp/types/NULL says NULL might be defined as nullptr. https://en.cppreference.com/w/cpp/language/reinterpret_cast says reinterpret_cast can't be used on nullptr. PR gold/28106 PR gold/27815 * gc.h (gc_process_relocs): Use static_cast in Section_id constructor.
* PR28098 Skip R_*_NONE relocation entries with zero r_sym without countingMichael Krasnyk2021-07-181-0/+6
| | | | | | PR gold/28098 * reloc.cc (Track_relocs::advance): Skip R_*_NONE relocation entries with r_sym of zero without counting in advance method.
* Update version number and regenerate filesNick Clifton2021-07-031-0/+4
|
* Add markers for 2.37 branchNick Clifton2021-07-031-0/+4
|
* [GOLD] PR27815, gold fails to build with latest GCCAlan Modra2021-05-251-0/+5
| | | | | | | | | | | Don't use nullptr, it requires -std=c++11 on versions of gcc prior to 6.1. It would be possible to arrange to pass -std=c++11 automatically when required (top level configure does that for gcc builds) but that seems overkill and since we're not up-to-date on the top level config files would mean someone would need to sync those over. PR gold/27815 * gc.h (gc_process_relocs): Use cast in Section_id constructor.
* [GOLD] PR27815, gold fails to build with latest GCCAlan Modra2021-05-221-0/+5
| | | | | | | | | ...gold/gc.h:250:37: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: [-Werror] 250 | (*secvec).push_back(Section_id(NULL, 0)); | ^~~~~~~~~~~~~~~~~~~ PR gold/27815 * gc.h (gc_process_relocs): Use nullptr in Section_id constructor.
* [GOLD]: Re: Add -Bno-symbolicAlan Modra2021-05-151-0/+5
| | | | | PR 27834 * options.cc (General_options::General_options): Init bsymbolic_.
* gold: Add -Bno-symbolicFangrui Song2021-05-141-0/+9
| | | | | | | | | | gold/ PR 27834 * options.h (General_options): Make -Bsymbolic and -Bsymbolic-functions special and adjust the help messages. Add enum Bsymbolic_kind and -Bno-symbolic. * options.cc (General_options): Define parse_Bno_symbolic, parse_Bsymbolic_functions, and parse_Bsymbolic.
* PR27625, powerpc64 gold __tls_get_addr callsAlan Modra2021-03-301-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch supports linking powerpc64 glibc with gold, specifically the __tls_get_addr call in elf/dl-sym.c. That call lacks marker relocations tying it to the arg setup instructions, but the arg setup insns are also contructed lacking the usual relocations on a Global Dynamic TLS code sequence. So there is no chance that anything in that sequence might be wrongly edited by the linker. In fact, the aim of linking glibc could have been supported by simply omitting the error whenever TLS optimisation is disabled, as it is when linking a shared library. The patch goes further than that, disabling TLS GD and LD sequence optimisation on a per-object basis for object files lacking marker relocs. PR gold/27625 * powerpc.cc (Powerpc_relobj): Add no_tls_marker_, tls_marker_, and tls_opt_error_ variables and accessors. (Target_powerpc::Scan::local, global): Call set_tls_marker and set_no_tls_marker for GD and LD code sequence relocations. (Target_powerpc::Relocate::relocate): Downgrade the "lacks marker reloc" error to a warning when safe to do so, and omit the error entirely if not optimising TLS sequences. Do not optimise GD and LD sequences for objects lacking marker relocs. (Target_powerpc::relocate_relocs): Heed no_tls_marker here too.
* Use stdout when printing object file names for -t option.Cary Coutant2021-03-191-0/+10
| | | | | | | | | | | gold/ PR gold/27615 * errors.cc (Errors::trace): New method. (gold_trace): New function. * errors.h (Errors::trace): New method. * gold.h (gold_trace): New function. * object.cc (Input_objects::add_object): Use gold_trace to print object file names.
* Fix failing test for PR 23870.Cary Coutant2021-03-191-0/+7
| | | | | | | | gold/ PR gold/pr23870 * testsuite/aarch64_pr23870_bar.c: Return a magic value. * testsuite/aarch64_pr23870_foo.c: Check the magic value and return success or failure.
* Fix call to system fallocate to handle errno correctly.Holger Berger2021-03-191-0/+5
| | | | | | | | 2021-03-19 Holger Berger <holger.berger@googlemail.com> gold/ PR gold/26541 * output.cc (gold_fallocate): Use errno when calling system fallocate.
* Fix typo in previous patch: should use struct mallinfo2.Cary Coutant2021-03-191-1/+7
| | | | | PR gold/26585 * main.cc (main): Fix typo in previous patch.
* Fix gold to use mallinfo2 if available instead of deprecated mallinfo.Duncan Simpson2021-03-191-0/+7
| | | | | | | | gold/ PR gold/26585 * configure.ac: Add check for mallinfo2. * configure: Regenerate. * main.cc (main): Use mallinfo2 if available.
* Add DWARF 5 support in gold.Cary Coutant2021-03-191-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | elfcpp/ PR gold/27246 * dwarf.h (enum DW_LNCT): Add line number table content type codes. (enum DW_LINE_OPS): Reformat. (enum DW_LINE_EXTENDED_OPS): Reformat. (enum DW_CHILDREN): Reformat. (enum DW_RLE): Add range list entry types. (enum DW_SECT): Update values for DWARF 5. gold/ PR gold/27246 * dwarf_reader.cc (Dwarf_abbrev_table::do_get_abbrev): Handle DW_FORM_implicit_const. (Dwarf_ranges_table::read_ranges_table): Add version parameter; Adjust all callers. Look for .debug_rnglists section if DWARF 5. (Dwarf_ranges_table::read_range_list_v5): New method. (Dwarf_die::read_attributes): Handle new DWARF 5 DW_FORM codes. (Dwarf_die::skip_attributes): Likewise. (Dwarf_info_reader::do_parse): Support DWARF 5 unit header format. (Dwarf_info_reader::read_3bytes_from_pointer): New method. (Sized_dwarf_line_info::Sized_dwarf_line_info): Initialize str_buffer_, str_buffer_start, reloc_map_, line_number_map_. Look for .debug_line_str section. (Sized_dwarf_line_info::read_header_prolog): Support DWARF 5 prolog. (Sized_dwarf_line_info::read_header_tables): Rename to... (Sized_dwarf_line_info::read_header_tables_v2): ... this. (Sized_dwarf_line_info::read_header_tables_v5): New method. (Sized_dwarf_line_info::process_one_opcode): Insert missing "this->". Change advance_line to signed int64_t. (Sized_dwarf_line_info::read_lines): Add endptr parameter; adjust callers. Insert missing "this->". (Sized_dwarf_line_info::read_line_mappings): Support DWARF 5. (Sized_dwarf_line_info::do_addr2line): Add debug code. * dwarf_reader.h (Dwarf_abbrev_table::Attribute): Add implicit_const field. Adjust constructor. (Dwarf_abbrev_table::add_sttribute): Add implicit_const parameter. (Dwarf_ranges_table::read_ranges_table): Add version parameter. (Dwarf_ranges_table::read_range_list_v5): New method. (Dwarf_die): Remove unused attr_off field. (Dwarf_info_reader::Dwarf_info_reader): Initialize unit_type_ field. (Dwarf_info_reader::is_type_unit): New method. (Dwarf_info_reader::read_3bytes_from_pointer): New method. (Dwarf_info_reader::read_range_list): Call read_range_list_v5 for DWARF 5 range lists. (Dwarf_info_reader::is_type_unit_): Remove. (Dwarf_info_reader::unit_type_): New field. (Sized_dwarf_line_info::~Sized_dwarf_line_info): Delete str_buffer_start_. (Sized_dwarf_line_info::read_header_tables): Rename to... (Sized_dwarf_line_info::read_header_tables_v2): ... this. (Sized_dwarf_line_info::read_header_tables_v5): New method. (Sized_dwarf_line_info::read_lines): Add endptr parameter. (Sized_dwarf_line_info::Dwarf_line_infoHeader): Add address_size field. (Sized_dwarf_line_info::str_buffer_): New field. (Sized_dwarf_line_info::str_buffer_end_): New field. (Sized_dwarf_line_info::str_buffer_start_): New field. (Sized_dwarf_line_info::end_of_header_length_): New field. (Sized_dwarf_line_info::end_of_unit_): New field.
* gold: Skip address size and segment selector for DWARF5H.J. Lu2021-01-281-0/+6
| | | | | | | | | The .debug_line secton in DWARF5 has a byte for address size and a byte for segment selector after DWARF version. Skip them for DWARF5. PR gold/27246 * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): Skip address size and segment selector for DWARF5.
* [GOLD] powerpc assertion failureAlan Modra2021-01-191-0/+6
| | | | | | | | | | A testcase with only ifuncs can result in no plt section (ifunc plt entries might instead be in iplt), which means we can get to this code without a static link. PR 27203 * powerpc.cc (do_plt_fde_location): Remove doing_static_link assertion.
* gold: Remove the circular IFUNC dependency in ifuncmain6pieH.J. Lu2021-01-171-0/+6
| | | | | | | | | | | | | | On Fedora 33 x86-64 with glibc 2.32-3, ifuncmain6pie failed with: ./ifuncmain6pie: IFUNC symbol 'foo' referenced in './ifuncmod6.so' is defined in the executable and creates an unsatisfiable circular dependency. FAIL ifuncmain6pie (exit status: 127) Remove non-JUMP_SLOT relocations against foo in ifuncmod6.so, which trigger the circular IFUNC dependency. * testsuite/ifuncmain6pie.c: Remove non-JUMP_SLOT relocations against foo in ifuncmod6.so. * testsuite/ifuncmod6.c: Likewise.
* Updated translations for some subdirectoriesNick Clifton2021-01-141-0/+4
|
* Updated translations for multiple subdirectoriesNick Clifton2021-01-111-0/+5
|
* Add Changelog entries and NEWS entries for 2.36 branchNick Clifton2021-01-091-0/+4
|
* PR27140, ppc32 segmentation fault in make_stubAlan Modra2021-01-031-0/+7
| | | | | | | | | | | This fixes a thinko in commit fa40fbe4849. st_other global entry bits are relevant only for 64-bit ELFv2. PowerPC gold leaves local sym vector of st_other bits as NULL for 32-bit, hence the segfault. PR 27140 * powerpc.cc (Target_powerpc::Branch_info::make_stub): Only access object->st_other() when 64-bit. (Stub_table::add_long_branch_entry): Ignore "other" when 32-bit.
* PR27116, Spelling errors found by Debian style checkerAlan Modra2021-01-011-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 27116 bfd/ * xcofflink.c: Correct spelling in comments. binutils/ * coffgrok.c (do_type): Correct spelling of auxiliary in errors. * doc/binutils.texi: Correct grammar. * readelf.c (process_version_sections): Correct spelling of auxiliary in warning. * testsuite/binutils-all/vax/objdump.exp: Comment grammar fix. config/ * override.m4: Correct comment grammar. gas/ * config/tc-i386.c: Correct comment spelling. * config/tc-riscv.c: Likewise. * config/tc-s390.c: Correct comment grammar. * doc/c-i386.texi: Correct spelling. * doc/c-s390.texi: Correct grammar. gold/ * tilegx.cc: Correct comment spelling. gprof/ * README: Correct grammar. * gprof.texi: Likewise. include/ * coff/internal.h: Correct comment spelling. * coff/sym.h: Likewise. * opcode/aarch64.h: Likewise. ld/ * configure.tgt: Correct comment grammar. * emultempl/m68hc1xelf.em: Likewise. * ld.texi: Correct grammar.
* Update year range in copyright notice of binutils filesAlan Modra2021-01-011-0/+4
|
* ChangeLog rotationAlan Modra2021-01-011-568/+2
|
* gold: Move sym declaration just before useH.J. Lu2020-12-191-0/+8
| | | | | | | | | | | Move sym declaration just before use to avoid -Wmaybe-uninitialized warning from GCC 11. PR gold/27097 * incremental.cc (Sized_relobj_incr::do_add_symbols): Move sym declaration just before use. (Sized_incr_dynobj::do_add_symbols): Likewise. * plugin.cc (Sized_pluginobj::do_add_symbols): Likewise.
* Cosmetic improvements for OSABI access.Cary Coutant2020-12-151-0/+9
| | | | | | | | | | | | | | | | | Add accessor methods to elfcpp::Ehdr class for EI_OSABI and EI_ABIVERSION; use those to simplify initialization of Osabi class and eliminate the need to template the class. elfcpp/ * elfcpp.h (class Ehdr): Add get_ei_osabi and get_ei_abiversion methods. gold/ * dwp.cc (class Dwo_file): Use new Ehdr::get_ei_osabi and get_ei_abiversion methods. * incremental.cc (make_sized_incremental_binary): Likewise. * object.cc (Sized_relobj_file::Sized_relobj_file): Likewise. (make_elf_sized_object): Likewise. * object.h (class Osabi): Make the class untemplated.
* gold: Add missing ChangeLog entries for commit ff4bc37d7H.J. Lu2020-12-151-0/+24
|
* Implement and document -z unique / -z nounique handling in goldVivek Das Mohapatra2020-12-151-0/+6
| | | | | * layout.cc (Layout::finish_dynamic_section): Set DF_GNU_1_UNIQUE. * options.h (class General_options): Handle -z unique, -z nounique.
* Re-enable incremental tests that were failing with GCC 9+.Cary Coutant2020-12-131-0/+8
| | | | | | | | | gold/ PR gold/23539 PR gold/24123 * testsuite/Makefile.am (incremental_copy_test): Re-enable for GCC 9+. (incremental_comdat_test_1): Likewise. * testsuite/Makefile.in: Regenerate.
* Fix incremental tests using gcc 9, which adds Gnu properties sections.Cary Coutant2020-12-131-0/+6
| | | | | | | | | | | | | | During an incremental link, we should simply ignore the Gnu properties sections. We were not handling them properly -- failing to process the properties from the base file. While that could be fixed, the property sections are meant for deployed binaries, and incremental linking is for development, so keeping the properties sections just adds to the likelihood of forcing a full link sooner. gold/ PR gold/23539 * object.cc (Sized_relobj_file::layout_gnu_property_section): Ignore Gnu properties during incremental links.
* Fix incremental linking with rodata merge sections.Cary Coutant2020-12-131-0/+6
| | | | | | | | | | | When processing the incremental update, incoming .rodata merge sections do not match the corresponding section in the base file, because the SHF_MERGE flag had not been masked out of the latter. gold/ PR gold/24123 * layout.cc (Layout::init_fixed_output_section): Mask out flags that should be ignored when matching sections.
* [GOLD] gcc-11 stringop-overflow warningAlan Modra2020-12-071-0/+4
| | | | | | | | | | | | | | | I'm unsure why this is deserving of a warning. Not writing the most efficient code surely can't be a real problem, but that is what https://gcc.gnu.org/bugzilla//show_bug.cgi?id=88059#c1 seems to say. plugin.cc:528:10: error: 'char* strncpy(char*, const char*, size_t)' specified bound depends on the length of the source argument [-Werror=stringop-overflow=] 528 | strncpy(tempdir, dir_template, len); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ plugin.cc:526:22: note: length computed here 526 | size_t len = strlen(dir_template) + 1; | ~~~~~~^~~~~~~~~~~~~~ * plugin.cc (Plugin_recorder::init): Replace strncpy with memcpy.
* [GOLD] PR26936 testAlan Modra2020-12-031-0/+6
| | | | | | | | Fails if you configure with --disable-x86-used-note. Fix that. * testsuite/Makefile.am (pr26936a.o): Pass -mx86-used-note=yes. (pr26936b.o, pr26936c.o, pr26936d.o): Likewise. * testsuite/Makefile.in: Regenerate.
* gold: Add endbr64 to IBT TLSDESC PLT entryH.J. Lu2020-11-291-0/+7
| | | | | | | | | | | | | | | | | | | Gold generates: c10: ff 35 da 23 00 00 push 0x23da(%rip) # 2ff0 <_GLOBAL_OFFSET_TABLE_+0x8> c16: f2 ff 25 c3 23 00 00 bnd jmp *0x23c3(%rip) # 2fe0 <_DYNAMIC+0x260> c1d: 0f 1f 00 nopl (%rax) for IBT TLSDESC PLT entry which misses endbr64. Add endbr64 to generate: c10: f3 0f 1e fa endbr64 c14: ff 35 d6 23 00 00 push 0x23d6(%rip) # 2ff0 <_GLOBAL_OFFSET_TABLE_+0x8> c1a: ff 25 c0 23 00 00 jmp *0x23c0(%rip) # 2fe0 <_DYNAMIC+0x260> PR ld/26972 * x86_64.cc (Output_data_plt_x86_64_ibt::tlsdesc_plt_entry): Add endbr64. (Output_data_plt_x86_64_ibt::do_fill_tlsdesc_entry): Adjusted.