Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gcc: try latest available snapshot (NOT TO BE MERGED) #9034

Closed
wants to merge 4 commits into from

Commits on Jul 3, 2021

  1. gcc: migrate to 11.1 applying msys2#8320

    Oscar Fuentes committed Jul 3, 2021
    Configuration menu
    Copy the full SHA
    0c1cd50 View commit details
    Browse the repository at this point in the history
  2. gcc: use the latest development snapshot

    Oscar Fuentes committed Jul 3, 2021
    Configuration menu
    Copy the full SHA
    8748c1c View commit details
    Browse the repository at this point in the history
  3. gcc: apply patch from upstream

    Change EH pointer encodings to PC relative on Windows
    author	Eric Botcazou <[email protected]>
    	Fri, 2 Jul 2021 08:21:11 +0000 (10:21 +0200)
    committer	Eric Botcazou <[email protected]>
    	Fri, 2 Jul 2021 08:27:41 +0000 (10:27 +0200)
    commit	014e6aa467b1648d09eab9897ca367bfec5e6b76
    
    Change EH pointer encodings to PC relative on Windows
    
    A big difference between ELF and PE-COFF is that, with the latter, you can
    build position-independent executables or DLLs without generating PIC; as
    a  matter of fact, flag_pic has historically been forced to 0 for 32-bit:
    
    /* Don't allow flag_pic to propagate since gas may produce invalid code
       otherwise.  */
    
    \
    do {
            \
      flag_pic = TARGET_64BIT ? 1 : 0; \
    } while (0)
    
    The reason is that the linker builds a .reloc section that collects the
    absolute relocations in the generated binary, and the loader uses them to
    relocate it at load time if need be (e.g. if --dynamicbase is enabled).
    
    Up to binutils 2.35, the GNU linker didn't build the .reloc section for
    executables and defaulted to --enable-auto-image-base for DLLs, which means
    that DLLs had an essentially unique load address and, therefore, need not
    be relocated by the loader in most cases.
    
    With binutils 2.36 and later, the GNU linker builds a .reloc section for
    executables (thus making them PIE), --enable-auto-image-base is disabled
    and --dynamicbase is enabled by default, which means that essentially all
    the binaries are relocated at load time.
    
    This badly breaks the 32-bit compiler configured to use DWARF-2 EH because
    the loader corrupts the .eh_frame section when processing the relocations
    contained in the .reloc section.
    
    gcc/
    * config/i386/i386.c (asm_preferred_eh_data_format): Always use the
    PIC encodings for PE-COFF targets.
    Oscar Fuentes committed Jul 3, 2021
    Configuration menu
    Copy the full SHA
    56defc1 View commit details
    Browse the repository at this point in the history
  4. gcc: drop patch already present on snapshot

    Oscar Fuentes committed Jul 3, 2021
    Configuration menu
    Copy the full SHA
    46b58ca View commit details
    Browse the repository at this point in the history