Whenever you add GTY
markers to a new source file, there are three
things you need to do:
target_gtfiles
in
the appropriate port's entries in config.gcc
.
GTFILES
variable in Makefile.in
.
gtfiles
variable defined in
config-lang.in
. For C, the file is c-config-lang.in
.
This list should include all files that have GTY macros in them that
are used in that front end, other than those defined in the previous
list items. For example, it is common for front end writers to use
c-common.c
and other files from the C front end, and these
should be included in the gtfiles
variable for such front ends.
gtype-
lang.h
. For other header files, it needs to be
included in gtype-desc.c
, which is a generated file, so add it to
ifiles
in open_base_file
in gengtype.c
.
For source files that aren't header files, the machinery will generate a
header file that should be included in the source file you just changed.
The file will be called gt-
path.h
where path is the
pathname relative to the gcc
directory with slashes replaced by
-, so for example the header file to be included in
objc/objc-parse.c
is called gt-objc-objc-parse.c
. The
generated header file should be included after everything else in the
source file. Don't forget to mention this file as a dependency in the
Makefile
!
gt-
path.h
file is needed, you need to arrange to
add a Makefile
rule that will ensure this file can be built.
This is done by making it a dependency of s-gtype
, like this:
gt-path.h : s-gtype ; @true
For language frontends, there is another file that needs to be included
somewhere. It will be called gtype-
lang.h
, where
lang is the name of the subdirectory the language is contained in.
It will need Makefile
rules just like the other generated files.