diff options
author | Tamar Christina <tamar.christina@arm.com> | 2018-10-29 09:45:50 +0000 |
---|---|---|
committer | Tamar Christina <tnfchris@gcc.gnu.org> | 2018-10-29 09:45:50 +0000 |
commit | d4eb0305b8581368fb5f9ed88dd501e13d1cdd3e (patch) | |
tree | 0fbc85f75064371eac3301ffb64b98ec7b523ddc /gcc/gcov.c | |
parent | aef7647f4a0a5a344ca7c3b5e2a9f18123949411 (diff) | |
download | gcc-d4eb0305b8581368fb5f9ed88dd501e13d1cdd3e.zip gcc-d4eb0305b8581368fb5f9ed88dd501e13d1cdd3e.tar.gz gcc-d4eb0305b8581368fb5f9ed88dd501e13d1cdd3e.tar.bz2 |
Fix mingw-w64 Ada native bootstrap (PR81878).
Due to the changes in PR81878 builds of GCC8 and trunk are impossible
with Ada enabled[1][2].
The reason the patch breaks the bootstrap is due to how gnatlink receives it's
arguments.
gnatlink is usually invoked as
$(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
--GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
so it passes $(CC) and $(GCC_LINK) as quoted arguments to the program.
Because of this quotation the msys2 shell does not translate any paths in
$(CC) and $(GCC_LINK) from their Unix version to their Windows version.
Furthermore because there are multiple paths in the values separated by space
and because the paths often contain a prefix like -L (e.g. -L/f/foo) we can't
use `fix_srcfile_path` to fix this.
An alternative solution would have been to create a stub program that echos the
commandline options it receives back, and calling this program with $(CC) and $(GCC_LINK)
unquoted to get them translated. However this was a bit more invasive.
So instead for native compilations we add -B../../ such that it picks up the lto plugin
from the previous built compiler. Since it's native there shouldn't be a mismatch here.
[1] https://github.com/Alexpux/MINGW-packages/pull/3877#issuecomment-408651809
[2] https://gcc.gnu.org/ml/gcc/2018-07/msg00410.html
gnattools/ChangeLog:
PR ada/81878
* Makefile.in (TOOLS_FLAGS_TO_PASS_NATIVE): Add -B ../../.
From-SVN: r265583
Diffstat (limited to 'gcc/gcov.c')
0 files changed, 0 insertions, 0 deletions