diff options
author | geoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-29 23:36:53 +0000 |
---|---|---|
committer | geoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-29 23:36:53 +0000 |
commit | ddf4604f819bef7998a0849d258f0084775d7339 (patch) | |
tree | a81081c458d46be162c522a5f484e4265c5c1d47 /gcc/doc/hostconfig.texi | |
parent | 1824e2bdf8fefbcefbe05c7555628be245d5ce4e (diff) | |
download | gcc-ddf4604f819bef7998a0849d258f0084775d7339.tar.gz |
2003-07-29 Geoffrey Keating <geoffk@apple.com>
* c-common.c (allow_pch): Remove.
* c-common.h (allow_pch): Remove.
(c_common_no_more_pch): Declare.
* c-lex.c (c_lex): Call c_common_no_more_pch when appropriate.
* c-pch.c: Include hosthooks.h.
(c_common_valid_pch): Don't check allow_pch.
(c_common_read_pch): Clear valid_pch to prevent reading PCH files.
(c_common_no_more_pch): New.
* ggc-common.c: Include hosthooks.h.
(gt_pch_save): Call gt_pch_get_address.
(gt_pch_restore): Call gt_pch_use_address.
* hooks.c (hook_voidp_size_t_null): New.
(hook_bool_voidp_size_t_false): New.
* hooks.h (hook_voidp_size_t_null): New.
(hook_bool_voidp_size_t_false): New.
* hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New.
(HOST_HOOKS_GT_PCH_USE_ADDRESS): New.
(HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS,
HOST_HOOKS_GT_PCH_USE_ADDRESS.
* hosthooks.h (struct host_hooks): Add gt_pch_get_address,
gt_pch_use_address.
* doc/hostconfig.texi (Host Common): Document
HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS.
* Makefile.in (c-pch.o): Depend on hosthooks.h.
(ggc-common.o): Likewise.
* config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define.
(HOST_HOOKS_GT_PCH_USE_ADDRESS): Define.
(pch_address_space): New.
(darwin_rs6000_gt_pch_get_address): New.
(darwin_rs6000_gt_pch_use_address): New.
Index: cp/ChangeLog
2003-07-29 Geoffrey Keating <geoffk@apple.com>
* parser.c (cp_lexer_new_main): Use c_common_no_more_pch instead
of setting valid_pch by hand.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69944 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/hostconfig.texi')
-rw-r--r-- | gcc/doc/hostconfig.texi | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/doc/hostconfig.texi b/gcc/doc/hostconfig.texi index 626a893c167..5c38313efd2 100644 --- a/gcc/doc/hostconfig.texi +++ b/gcc/doc/hostconfig.texi @@ -42,6 +42,39 @@ This host hook is used to set up handling for extra signals. The most common thing to do in this hook is to detect stack overflow. @end deftypefn +@deftypefn {Host Hook} void * HOST_HOOKS_GT_PCH_GET_ADDRESS (size_t @var{size}) +This host hook returns the address of some space in which a PCH may be +loaded with @samp{HOST_HOOKS_PCH_LOAD_PCH}. The space will need to +have @var{size} bytes. If insufficient space is available, +@samp{NULL} may be returned; the PCH machinery will try to find a +suitable address using a heuristic. + +The memory does not have to be available now. In fact, usually +@samp{HOST_HOOKS_PCH_LOAD_PCH} will already have been called. The memory +need only be available in future invocations of GCC. +@end deftypefn + +@deftypefn {Host Hook} bool HOST_HOOKS_GT_PCH_USE_ADDRESS (size_t @var{size}, void * @var{address}) +This host hook is called when a PCH file is about to be loaded. If +@var{address} is the address that would have been returned by +@samp{HOST_HOOKS_PCH_MEMORY_ADDRESS}, and @var{size} is smaller than +the maximum than @samp{HOST_HOOKS_PCH_MEMORY_ADDRESS} would have +accepted, return true, otherwise return false. + +In addition, free any address space reserved that isn't needed to hold +@var{size} bytes (whether or not true is returned). The PCH machinery will +use @samp{mmap} with @samp{MAP_FIXED} to load the PCH if @samp{HAVE_MMAP_FILE}, +or will use @samp{fread} otherwise. + +If no PCH will be loaded, this hook may be called with @var{size} +zero, in which case all reserved address space should be freed. + +Do not try to handle values of @var{address} that could not have been +returned by this executable; just return false. Such values usually +indicate an out-of-date PCH file (built by some other GCC executable), +and such a PCH file won't work. +@end deftypefn + @node Filesystem @section Host Filesystem @cindex configuration file |