aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2018-01-11ld: Create a new LOAD segment for separate code segmentH.J. Lu1-7/+25
When generating separate code LOAD segment, create a new LOAD segment if the previous section contains text and the current section doesn't or vice versa: Elf file type is DYN (Shared object file) Entry point 0x200020 There are 7 program headers, starting at offset 52 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x000000 0x00000000 0x00000000 0x00200 0x00200 R 0x200000 LOAD 0x200000 0x00200000 0x00200000 0x00036 0x00036 R E 0x200000 LOAD 0x400000 0x00400000 0x00400000 0x00064 0x00064 R 0x200000 LOAD 0x400f80 0x00600f80 0x00600f80 0x000a0 0x000a0 RW 0x200000 DYNAMIC 0x400f80 0x00600f80 0x00600f80 0x00080 0x00080 RW 0x4 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10 GNU_RELRO 0x400f80 0x00600f80 0x00600f80 0x00080 0x00080 R 0x1 Section to Segment mapping: Segment Sections... 00 .hash .gnu.hash .dynsym .dynstr .rela.plt 01 .plt .text 02 .rodata .eh_frame 03 .dynamic .got.plt 04 .dynamic 05 06 .dynamic to prevent fetching or executing data in code pages as instructions. Also don't put a writable section in a read-only segment if there is a RELRO segment. Since code segment is aligned and padded to the maximum page size on disk, the minimum file size is bigger than the maximum page size which is 2MB (0x200000): -rwxr-xr-x 1 hjl hjl 4201932 Jan 10 10:41 libfoo.so "-z max-page-size=0x1000" can be used to reduce the maximum page size to 4KB (0x1000): -rwxr-xr-x 1 hjl hjl 15820 Jan 10 10:44 libfoo.so PR ld/22393 * elf.c (_bfd_elf_map_sections_to_segments): When generating separate code and read-only data LOAD segments, create a new LOAD segment if the previous section contains text and the current section doesn't or vice versa. Don't put a writable section in a read-only segment if there is a RELRO segment.
2018-01-11Automatic date update in version.inGDB Administrator1-1/+1
2018-01-10Automatic date update in version.inGDB Administrator1-1/+1
2018-01-09PR22662, nds32: Fix a typographical error.Kuan-Lin Chen2-1/+6
2018-01-09Automatic date update in version.inGDB Administrator1-1/+1
2018-01-08Automatic date update in version.inGDB Administrator1-1/+1
2018-01-07Automatic date update in version.inGDB Administrator1-1/+1
2018-01-06Automatic date update in version.inGDB Administrator1-1/+1
2018-01-05Automatic date update in version.ingdb-8.1-branchpointGDB Administrator1-1/+1
2018-01-04Automatic date update in version.inGDB Administrator1-1/+1
2018-01-03Create pseudo sections for FreeBSD NT_PROCSTAT_(PROC|FILES|VMMAP) notes.John Baldwin2-0/+18
bfd/ChangeLog: * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_PROC, NT_FREEBSD_PROCSTAT_FILES, and NT_FREEBSD_PROCSTAT_VMMAP.
2018-01-03Update year range in copyright notice of binutils filesAlan Modra500-504/+508
2018-01-03ChangeLog rotationAlan Modra2-5715/+5729
2018-01-03Automatic date update in version.inGDB Administrator1-1/+1
2018-01-02Automatic date update in version.inGDB Administrator1-1/+1
2018-01-01Automatic date update in version.inGDB Administrator1-1/+1
2017-12-31Automatic date update in version.inGDB Administrator1-1/+1
2017-12-30Automatic date update in version.inGDB Administrator1-1/+1
2017-12-29Automatic date update in version.inGDB Administrator1-1/+1
2017-12-28Automatic date update in version.inGDB Administrator1-1/+1
2017-12-27Automatic date update in version.inGDB Administrator1-1/+1
2017-12-26Automatic date update in version.inGDB Administrator1-1/+1
2017-12-25Automatic date update in version.inGDB Administrator1-1/+1
2017-12-24Automatic date update in version.inGDB Administrator1-1/+1
2017-12-23Automatic date update in version.inGDB Administrator1-1/+1
2017-12-22Automatic date update in version.inGDB Administrator1-1/+1
2017-12-21Automatic date update in version.inGDB Administrator1-1/+1
2017-12-20Automatic date update in version.inGDB Administrator1-1/+1
2017-12-19Automatic date update in version.inGDB Administrator1-1/+1
2017-12-19PR22626, invalid dynindx used for dynamic relocs against section symsAlan Modra2-8/+22
_bfd_elf_link_renumber_dynsyms is called twice by the linker. The first call in bfd_elf_size_dynamic_sections is just to answer the question as to whether there are there any dynamic symbols. The second call in bfd_elf_size_dynsym_hash_dynstr sets the st_shndx value that dynamic symbols will have. strip_excluded_output_sections is called between these two calls. So sections seen on the first _bfd_elf_link_renumber_dynsyms pass might differ from those seen on the second pass. Unfortunately, that can result in a stripped section's dynamic symbol being assigned a dynindx on the first pass but not corrected to the final value (of zero, ie. not dynamic) on the second pass. PowerPC, x86, mips, and most other targets that emit dynamic section symbols, just test that section symbol dynindx is non-zero before using a given section symbol in dynamic relocations. This patch prevents _bfd_elf_link_renumber_dynsyms from setting any section symbol dynindx on the first pass. PR 22626 * elflink.c (_bfd_elf_link_renumber_dynsyms): Don't set section dynindx when section_sym_count is NULL. (bfd_elf_size_dynamic_sections): Pass NULL section_sym_count to preliminary _bfd_elf_link_renumber_dynsyms call.
2017-12-18Automatic date update in version.inGDB Administrator1-1/+1
2017-12-17Automatic date update in version.inGDB Administrator1-1/+1
2017-12-16Automatic date update in version.inGDB Administrator1-1/+1
2017-12-15Update documentation regarding the bfd returned by bfd_openr_next_archived_fileNick Clifton2-4/+12
PR 22571 * archive.c (bfd_openr_next_archived_file): Extend the documentation to note that it is necessary to call bfd_check_format on the rrturned bfd before using it.
2017-12-15Automatic date update in version.inGDB Administrator1-1/+1
2017-12-14Update the address of the FSF in the copyright notice of files which were ↵Nick Clifton9-16/+31
using the old address. top * COPYING.LIBGLOSS: Update address of FSF in copyright notice. bfd * cpu-mt.c: Update address of FSF in copyright notice. * elf32-m32c.c: Likewise. * elf32-mt.c: Likewise. * elf32-rl78.c: Likewise. * elf32-rx.c: Likewise. * elf32-rx.h: Likewise. * elf32-spu.h: Likewise. * hosts/x86-64linux.h: Likewise. etc * add-log.el: Update address of FSF in copyright notice. gas * config/tc-m32c.c: Update address of FSF in copyright notice. * config/tc-m32c.h: Likewise. * config/tc-mt.c: Likewise. * config/tc-mt.h: Likewise. * config/tc-visium.c: Likewise. * config/tc-visium.h: Likewise. * testsuite/gas/rx/explode: Likewise. ld * testsuite/ld-mn10300/mn10300.exp: Update address of FSF in copyright notice.
2017-12-14Automatic date update in version.inGDB Administrator1-1/+1
2017-12-13[BFD][AARCH64]Disallow R_AARCH64_ABS32(LP64) & R_AARCH64_ABS16 in const ↵Renlin Li2-0/+27
section of shared object. R_AARCH64_ABS64, R_AARCH64_ABS32 and R_AARCH64_ABS16 are data relocations supported in AArch64 elf ABI. R_AARCH64_ABS64 under LP64 is allowed in shared object and a dynamic relocation entry will be generated. This allows the dynamic linker to do further symbol resolution. R_AARCH64_ABS32 likewise is allowed in shared object, however under ILP32 abi. The original behavior for R_AARCH64_ABS32 under LP64 is that, it's allowed in shared object and silently resolved at static linking time. No dynamic relocation entry is generate for it. R_AARCH64_ABS16 is allowed in shared object under both L64 and ILP32. It's resolved at static linking time as well. Under LP64, the address should be 64-bit. R_AARCH64_ABS32 relocation indicates an address that is only sized 32 bits which is meaningless in LP64 shared object. It's useful to error out. I have checked glibc dynamic linker code, R_AARCH64_ABS16 is not supported at all. So R_AARCH64_ABS16 should be reject in shared object completely. In this patch, R_AARCH64_ABS32 is rejected under LP64 in constant section of shared object. R_AARCH64_ABS16 is rejected in constant section of shared object in both ABI. This will sometimes provide useful information for buggy code.
2017-12-13S/390: Fix (some) PIE+undef weak failuresAndreas Krebbel1-6/+6
This fixes these failures on 64 bit which currently occur when running the Binutils testsuite with a default PIE compiler. < FAIL: Build rdynamic-1 < FAIL: Build dynamic-1 < FAIL: Build pr22269-1 bfd/ChangeLog: 2017-12-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Use UNDEFWEAK_NO_DYNAMIC_RELOC. (allocate_dynrelocs): Likewise. (elf_s390_relocate_section): Check resolved_to_zero. (elf_s390_finish_dynamic_symbol): Don't generate runtime reloc if UNDEFWEAK_NO_DYNAMIC_RELOC.
2017-12-13Automatic date update in version.inGDB Administrator1-1/+1
2017-12-12Automatic date update in version.inGDB Administrator1-1/+1
2017-12-11Automatic date update in version.inGDB Administrator1-1/+1
2017-12-11Typo fixSangamesh Mallayya2-1/+5
Entirely the fault of that Alan Modra bloke. * bfd.c (bfd_get_sign_extend_vma): Correct typo.
2017-12-10Automatic date update in version.inGDB Administrator1-1/+1
2017-12-09Automatic date update in version.inGDB Administrator1-1/+1
2017-12-09Work around sparc glibc bugAlan Modra2-11/+21
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): When emitting dynamic R_SPARC_RELATIVE for GOT entries, ensure the section contents are zeroed.
2017-12-08Fix stripping relocs in a file with mergeable notes.Nick Clifton2-0/+10
A recent Fedora bug (1520805) exposed a problem with objcopy's reloc copying code, when a binary also contains mergeable notes. The note merging code would delete some relocs, but then the reloc copying code would try to put them back again, which did not work. So I am checking in the patch below to fix the problem. The patch also tweaks one of the binutils note merging tests so that it is skipped for the Sparc64 target, since this has funky relocs. binutils * objcopy.c (copy_relocations_in_section): Use the orelocations field of the input section, if it has been initialised. * testsuite/binutils-all/note-2-64.d: Skip test on Sparc64. bfd * elfcode.h (elf_write_relocs): Check for an empty howto field.
2017-12-08Add aix 64-bit check to bfd_get_sign_extend_vmaSangamesh Mallayya2-1/+6
* bfd.c (bfd_get_sign_extend_vma): Handle aix5coff64-rs6000.
2017-12-08Automatic date update in version.inGDB Administrator1-1/+1
2017-12-07Automatic date update in version.inGDB Administrator1-1/+1