[petsc-dev] Issue with dependency generation in GCC 9

Lisandro Dalcin dalcinl at gmail.com
Mon Jan 20 09:56:00 CST 2020


Ups! Not a GCC issue, but still relevant to all us...

The issue happens only if using ccache. I have the system ccache package
installed, and ccache is used via symlinks.

$ mpicc -show
gcc -I/usr/include/mpich-x86_64 -L/usr/lib64/mpich/lib -Wl,-rpath
-Wl,/usr/lib64/mpich/lib -Wl,--enable-new-dtags -lmpi
$ which gcc
/usr/lib64/ccache/gcc

Rebuilding this way:

$ make clean
...
$ MPICH_CC=/usr/bin/gcc make
...
$ head -n 3 arch-linux2-c-debug/obj/sys/objects/init.d
arch-linux2-c-debug/obj/sys/objects/init.o: \
 /home/devel/petsc/dev/src/sys/objects/init.c \
 /home/devel/petsc/dev/include/petscsys.h \

so I'm back to normal.

Now I need to figure out if this is a ccache miss-configuration (maybe from
legacy values in my $HOME config file) or something else.


On Mon, 20 Jan 2020 at 18:42, <jed at jedbrown.org> wrote:

> Ah, you're right. I'm still suspicious about how this behavior appeared on
> your machine. Would be interesting to check a vanilla build or gcc-10
> branch. I'm still learning toward it being unintentional.
>
> On Jan 20, 2020 07:57, Lisandro Dalcin <dalcinl at gmail.com> wrote:
>
>
>
> On Mon, 20 Jan 2020 at 17:07, Jed Brown <jed at jedbrown.org> wrote:
>
> From my man page (contradicting the behavior Lisandro observed):
>
>    -MD -MD is equivalent to -M -MF file, except that -E is not implied.
> The driver
>        determines file based on whether an -o option is given.  If it is,
> the driver uses
>        its argument but with a suffix of .d, otherwise it takes the name
> of the input
>        file, removes any directory components and suffix, and applies a .d
> suffix.
>
>
> Lisandro, what does your man page say?
>
>
> It says exactly the same. But you are confusing the flag, -MF is about
> naming the output dep filename, i.e. ompi-optg/obj/sys/objects/init.d in
> your example, that is just fine, I do get that file with that name.
> My issue is with the contents GCC writes within that dep file,
> specifically the TARGET, which can be specified with -MT, but it is
> cumbersome to do, unless you use "-MT $@", though no idea how to update
> configure for that.
>
>
> --
> Lisandro Dalcin
> ============
> Research Scientist
> Extreme Computing Research Center (ECRC)
> King Abdullah University of Science and Technology (KAUST)
> http://ecrc.kaust.edu.sa/
>
>
>

-- 
Lisandro Dalcin
============
Research Scientist
Extreme Computing Research Center (ECRC)
King Abdullah University of Science and Technology (KAUST)
http://ecrc.kaust.edu.sa/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20200120/bb980155/attachment-0001.html>


More information about the petsc-dev mailing list