On Sat, 21 Jun 2025 11:03:19 +0200
Richard Biener <richard.guent...@gmail.com> wrote:

> > A comparison of the mentions of "fixinclude" in config.{status,log}
> > of two directories, bootstrap and non-bootstrap, shows no
> > difference.  
> > 
> > What should I be looking for?
> 
> For why fixinclude isn?t built - the config.log therein might show
> something.  

Thanks, Richard.  As I said, both bootstrap and nonboostrap builds
leave identical traces of fixinclude in config.log: 

$ grep fixi build/config.log | nl
     1  build_configdirs=' libiberty libcpp fixincludes'
     2  configdirs=' libiberty zlib libbacktrace libcpp libcody
libdecnumber fixincludes gcc libcc1 c++tools'

At Iain's suggestion, I tried an out-of-body experience, and that
worked.  So, now we know something we didn't before.  Let me explain.  

I normally create a build directory off the root.  According to
gccinstall.info, that is a supported arrangement.  

        "... building where OBJDIR is a subdirectory of SRCDIR should
work as well; building where OBJDIR == SRCDIR is unsupported."

I take that to mean that, wherever one builds, one must be free to run 
"rm -rf" on the build tree.  

So I normally have: 

        $ pwd && ls -d $(git rev-parse --show-toplevel) build
        /home/jklowden/projects/3rd/gcc/parser
        /home/jklowden/projects/3rd/gcc/parser  build

In that topology, for a bootstrap build only, build/fixinclude is
empty.  

Today I created a build directory in /tmp, and the bootstrap build
succeeded: 

$ head config.log  | grep /configure
  $ /home/jklowden/projects/3rd/gcc/cobol-stage/configure
--prefix=/usr/local/gcc-cobol --disable-multilib --enable-checking
--enable-languages=c,cobol

$ ls fixincludes/ config.cache   fixfixes.o
fixlib.o    Makefile          server.o config.h       fixincl
fixopts.o   mkheaders         stamp-hconfig.log     fixincl.o
fixtests.o  mkheaders.almost config.status  fixinc.sh   full-stamp
procopen.o

To recap:

1.  For --disable-bootstrap, ../OBJDIR == SRCDIR works.

2.  For --enable-bootstrap, if ../OBJDIR == SRCDIR, OBJDIR/fixinclude
is an empty directory.  The build succeeds, but "make install" fails.  

3.  For --enable-bootstrap, if ../OBJDIR != SRCDIR, "make install"
succeeds. 

4.  gccinstall doesn't define "should work" for #2. 

I don't know what purpose fixinclude serves.  My problem is solved
insofar as I have a working solution.  If I may, I would suggest to the
folks who know what fixinclude does that it be  made to work for
case #2 above.  If that's infeasible, we should update the
documentation to say so.  

--jkl

Reply via email to