When doing a build, we use a pipe between GCC and GAS. And because we wish to do some analysis of the assembly code, we do not use -pipe but instead do '-S -c -'. And this has worked fine for many years.
I was recently looking into collecting some coverage information. To that end, I added --coverage to the invocation line. And it slowed things down by more than an order of magnitude! Investigating, it appears that the problem is the writing of the GCNO files. We do our builds on a build cluster with a lot of parallelism. With the result that a dozen machines are each doing a bunch of writes to the file '-.gcno' in an NFS mounted directory. Rather than have a full, not incremental, build take 5-10 minutes, It takes 4 hours. And rather than have each of several thousand compiles produce their own GCNO file, they all get overwritten... Grep'ing around, I found '-auxbase'. If I correctly understand it, when compiling some/path/name.c into bin/some-product/some/path/name.o, I could simply say -auxbase $(@:%.o=%) The problem is that in common.opt, auxbase is marked RejectDriver. It looks like removing it would some my problem. Anyone have a reason why removing that would be a bad idea? Or have a different solution? Thanks. David