diff options
author | thorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-19 04:37:50 +0000 |
---|---|---|
committer | thorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-19 04:37:50 +0000 |
commit | c21b3276e4428c6ac755f1fc03eed6a045d4bb44 (patch) | |
tree | a48e1f22c976c1cbedd74ba5fba89fa5a4479319 /gcc/gcc.h | |
parent | 2ef337819dbd11db5ebf26d2101180c621c152e6 (diff) | |
download | linaro-gcc-c21b3276e4428c6ac755f1fc03eed6a045d4bb44.tar.gz linaro-gcc-c21b3276e4428c6ac755f1fc03eed6a045d4bb44.tar.bz2 linaro-gcc-c21b3276e4428c6ac755f1fc03eed6a045d4bb44.zip |
* gcc.c (The Specs Language): Document spec functions.
(static_spec_functions, lookup_spec_function)
(eval_spec_function, handle_spec_function)
(if_exists_spec_function, alloc_args): New.
(execute): Abort if processing_spec_function is true.
(do_spec_1): Hand off spec to handle_spec_function if %:
is encountered. If processing_spec_function is true,
end any pending argument when the end of the string is reached.
(main): Use alloc_args to allocate the initial argument vector.
* gcc.h (struct spec_function): New.
(lang_specific_spec_functions): New extern.
* config/netbsd-elf.h (STARTFILE_SPEC): Add if-exists(crti%O%s).
(ENDFILE_SPEC): Add if-exists(crtn%O%s).
* config/alpha/netbsd.h (ENDFILE_SPEC): Likewise.
* doc/invoke.texi: Document spec functions.
* cppspec.c (lang_specific_spec_functions): New.
* gccspec.c: Likewise.
* g++spec.c (lang_specific_spec_functions): New.
* g77spec.c (lang_specific_spec_functions): New.
* jvspec.c (lang_specific_spec_functions): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59241 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcc.h')
-rw-r--r-- | gcc/gcc.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/gcc.h b/gcc/gcc.h index 77033879631..feab0ef0710 100644 --- a/gcc/gcc.h +++ b/gcc/gcc.h @@ -23,6 +23,14 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "version.h" +/* The mapping of a spec function name to the C function that + implements it. */ +struct spec_function +{ + const char *name; + const char *(*func) PARAMS ((int, const char **)); +}; + /* These are exported by gcc.c. */ extern int do_spec PARAMS ((const char *)); extern void record_temp_file PARAMS ((const char *, int, int)); @@ -48,6 +56,9 @@ extern int n_infiles; /* Number of extra output files that lang_specific_pre_link may generate. */ extern int lang_specific_extra_outfiles; +/* Table of language-specific spec functions. */ +extern const struct spec_function lang_specific_spec_functions[]; + /* A vector of corresponding output files is made up later. */ extern const char **outfiles; |