-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Conversation
23e0e92
to
262128b
Compare
9da3546
to
48bb7c0
Compare
48bb7c0
to
8748c1c
Compare
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.
This build fails with a configure error on libgomp (on stage 2, if I'm correct). Now trying gcc-11 + EH patch on #9035.
|
You can test any changes in your own forked repository. CI will run same thing. |
That's news to me, thank you. (What a waste of electricity!) |
only if you enable it, you have to go to the "Actions" tab of your fork and allow it |
... to see if it contains a fix for #8320