On Apr 25, 2005, at 8:15 PM, Bruce Lilly wrote:

Hi,

Earlier versions of gcc retain static character strings in object files
which can be used for identification via ident (RCS) or what (SCCS).
Gcc 4.0.0 removes them above optimization level 1.  Global strings
are retained, of course, but that may lead to namespace collisions.
#ident doesn't work on some architectures, and functionality can't
be determined at preprocessor time.  #sccs doesn't work at all.  The
bottom line is that identification which worked with earlier versions
of gcc is broken under 4.0.0.  See attached C source code example.
<idtest.c>

The following is correct way of saying that the variable is used in 3.3 and above: static const char rcs_sccs_id[] __attribute__((used)) = "$Id: @(#)%M% %I% 20%E% %U% copyright 2005 %Q% string1\\ $";


-- Pinski



Reply via email to