[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc
Subject:    Re: hash signature of cc1 etc....?
From:       Romain Geissler <romain.geissler () gmail ! com>
Date:       2011-07-25 19:34:08
Message-ID: B97FEA71-B092-4E8C-BF18-7CB2521D040A () gmail ! com
[Download RAW message or body]

Hi

Le 23 juil. 2011 à 07:45, Basile Starynkevitch a écrit :

> On Fri, 22 Jul 2011 15:12:36 -0700
> Ian Lance Taylor <iant@google.com> wrote:
> 
> > Basile Starynkevitch <basile@starynkevitch.net> writes:
> > 
> > > Should we add an option to the gcc driver which would print such checksums?
> > 
> > I'm not quite sure what checksums you want.
> > 
> > Suppose you just do
> > 
> > md5sum `gcc --print-file-name=cc1`
> > 
> > ?
> > 
> > That will give you a checksum without gcc going to the trouble of
> > generating it.
> 
> 
> What about the other files. (lto1, cc1plus...). On my Debian/Sid, 
> % gcc --print-file-name=cc1
> /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/cc1
> 
> But 
> % ls -F /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/
> 32/	       crtprec80.o	libgcj-tools.so@	libquadmath.a
> cc1*	       ecj1*		libgcj.so@		libquadmath.so@
> cc1plus*       gengtype*	libgcj.spec		libssp_nonshared.a
> collect2*      gtype.state	libgcj_bc.so		libstdc++.a
> crtbegin.o     include/		libgcov.a		libstdc++.so@
> crtbeginS.o    include-fixed/	libgij.so@		libsupc++.a
> crtbeginT.o    jc1*		libgomp.a		lto-wrapper*
> crtend.o       jvgenmain*	libgomp.so@		lto1*
> crtendS.o      libgcc.a		libgomp.spec		plugin/
> crtfastmath.o  libgcc_eh.a	liblto_plugin.so@
> crtprec32.o    libgcc_s.so@	liblto_plugin.so.0@
> crtprec64.o    libgcc_s_32.so@	liblto_plugin.so.0.0.0
> 
> 
> How can I know which of the above files have some influence on the behavior of GCC
> plugins? (This is not true of all, crtbegin.o don't, and I would think that \
> gengtype don't neither, because I believe that its observable behavior changes only \
> from 4.6 to 4.7, but not much from 4.6.0 to 4.6.1).

Plugins only depends on all the header files (gtype.state might also be useful) that \
GCC allows plugins to see. After all, it's the only thing that's needed to build a \
plugin. If headers didn't changed but a .o file did because of some patch, you won't \
see any change when rebuilding the whole plugin (as plugin won't see them). Plugins \
are nothing more than shared object build with a bunch of header files. So you just \
need to correctly write header dependencies in your plugin Makefile and it will just \
work as needed.

Anyway, GCC plugin API brings you plugin_default_version_check which performs checks \
on revision number + build configuration. By using this check on runtime, you can be \
assured that the GCC that run the plugin fits the one that build it.

Romain Geissler

> 
> I was suggesting adding some way to get the checksums of only the relevant files.
> 
> Regards.
> -- 
> Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
> email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
> 8, rue de la Faiencerie, 92340 Bourg La Reine, France
> *** opinions {are only mine, sont seulement les miennes} ***


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic