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

Balay, Satish balay at mcs.anl.gov
Mon Jan 20 12:20:37 CST 2020


Downgrading to ccache-3.4.3-2.fc30.x86_64.rpm [on F31] changes this behavior for me.

Satish

-----

wget https://kojipkgs.fedoraproject.org//packages/ccache/3.4.3/2.fc30/x86_64/ccache-3.4.3-2.fc30.x86_64.rpm
rpm -Uvh --oldpackage ccache-3.4.3-2.fc30.x86_64.rpm

------

$ head -n 3 arch-linux-c-debug/obj/sys/objects/init.d
arch-linux-c-debug/obj/sys/objects/init.o: \
 /home/balay/petsc/src/sys/objects/init.c \
 /home/balay/petsc/include/petscsys.h \




On Mon, 20 Jan 2020, Lisandro Dalcin wrote:

> 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/
> >
> >
> >
> 
> 



More information about the petsc-dev mailing list