From c21b3276e4428c6ac755f1fc03eed6a045d4bb44 Mon Sep 17 00:00:00 2001 From: thorpej Date: Tue, 19 Nov 2002 04:37:50 +0000 Subject: * 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 --- gcc/gcc.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gcc/gcc.h') 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; -- cgit v1.2.3