Hi, I'm seeing the following build error: n file included from ../.././libcc1/findcomp.cc:20:0: ../.././libcc1/../gcc/config.h:6:23: fatal error: auto-host.h: No such file or directory compilation terminated. In file included from ../.././libcc1/plugin.cc:27:0: ../.././libcc1/../gcc/config.h:6:23: fatal error: auto-host.h: No such file or directory compilation terminated. I've bisected it down to: commit ab103e33b2aae243b231eba689e0b99418fa1663 Author: pmuldoon <pmuldoon@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Mon Oct 27 17:21:42 2014 +0000 Let GDB reuse GCC's parser.
What target? How options did you configure GCC with?
Building on x86, config options are: ./configure --prefix=/home/sasha/gcc-inst/ --with-arch=native --with-tune=native --enable-languages=c --enable-lto --enable-gold --disable-libstdcxx e --with-tune=native --enable-languages=c --enable-lto --enable-gold --disable-libstdcx
I am trying to replicate locally. Do you recall at which stage (1, 2 .. etc) during the build process this occurred at?
Created attachment 33846 [details] Build log
It happened very early. I've attached the full build log for reference.
I am already past that point in my build. auto-host.h is an automatically generated file, so I am quite puzzled why in your case it has not found it. In my case, it is in obj/gcc/auto-host.h. I built with your parameters. Was this a new build from a new checkout? If you updated from an existing src base, did you run make distclean over the old build? Or just start with a new obj/ location?
The built was from a clean checkout. auto-host.h seems to be correctly created during the build. I see this after the build failure: $ stat host-x86_64-unknown-linux-gnu/gcc/auto-host.h File: `host-x86_64-unknown-linux-gnu/gcc/auto-host.h' Size: 47262 Blocks: 96 IO Block: 4096 regular file Device: fe00h/65024d Inode: 15209562 Links: 1 Access: (0644/-rw-r--r--) Uid: (10017/ sasha) Gid: (10017/ sasha) Access: 2014-10-29 15:59:10.713463956 -0400 Modify: 2014-10-29 15:59:09.677398847 -0400 Change: 2014-10-29 15:59:09.685399348 -0400 Birth: -
I am still waiting for my build to complete the full-stages. Meanwhile does --disable-libcc1 allow you to continue with your work?
My build is not complete with the parameters specified in the PR: ../trunk/configure --prefix=/home/pmuldoon/gdb_compile_gcc/ --with-arch=native --with-tune=native --enable-languages=c --enable-lto --enable-gold --disable-libstdcxx --with-tune=native --enable-languages=c --enable-lto --enable-gold --disable-libstdcx && make -j9 And it built successfully. Which is puzzling! I notice your configure was ./configure. Was it it an in-source build (IE not building to a separate object file directory?)
Sorry I mean my "build is now complete"
That's correct. I'm just building in-tree and using 'git clean -df' to reset everything back to a pristine checkout state when I need to.
./configure isn't supported in GCC, don't do that.
From "Installing GCC: Configuration" (https://gcc.gnu.org/install/configure.html): "building where srcdir == objdir should still work, but doesn't get extensive testing"
That is weird, because actually the objdir subdir of srcdir case is what works fine and is daily tested, and objdir == srcdir case is the problematic case that often doesn't work.
Can you try building out of tree to see if it fixes your case? IE: mkdir obj cd obj ../trunk/configure ..... (replace trunk with the source directory if you are using git)
The build works fine if I'm using a different obj directory.
> --disable-libstdcxx That also seems like a bad option to use too.
I just did a build with objdir==srcdir with `./configure` and `make -j24 ` and it worked. It builds libcc1 in `./host-x86_64-pc-linux-gnu/libcc1` just fine too. I have no idea when it was fixed though.