This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, If a linker script is used, all output sections of a segment are stored in the first item of output_lists_. On the other hand, when calculating the file size of segments, gold adds sections from all chunks of output_lists_ up to index ORDER_SMALL_BSS. As a result, if a linker script with SECTIONS clause is used, all the sections contribute to the file size of the segment, even though some of them might be BSS. This patch addresses the issue by analyzing section types, excluding BSS sections at the end of the sequence from contributing to the file offset, regardless of their index in output_lists_. Best regards, Igor Kudrin --- gold/ChangeLog * output.cc (Output_segment::set_section_addresses): Handle file and memory offsets separatelly. (Output_segment::set_section_list_addresses): Ignore BSS segments at the end of the list for file offsets. * output.h (Output_segment::set_section_list_addresses): New argument poff_file; rename argument poff to poff_mem. * testsuite/Makefile.am (pr16711): New test. * testsuite/Makefile.in: Regenerate. * testsuite/pr16711.s: New test source file. * testsuite/pr16711.sh: New test script. * testsuite/pr16711.t: New test linker script.
Attachment:
gold-pr16711-segment-with-bss.patch.txt
Description: gold-pr16711-segment-with-bss.patch.txt
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |