summaryrefslogtreecommitdiff
path: root/gcc/gcc.h
diff options
context:
space:
mode:
authorthorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-19 04:37:50 +0000
committerthorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-19 04:37:50 +0000
commitc21b3276e4428c6ac755f1fc03eed6a045d4bb44 (patch)
treea48e1f22c976c1cbedd74ba5fba89fa5a4479319 /gcc/gcc.h
parent2ef337819dbd11db5ebf26d2101180c621c152e6 (diff)
downloadgcc-c21b3276e4428c6ac755f1fc03eed6a045d4bb44.tar.gz
* 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.h11
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;