2012-01-15 Magnus Granberg * gcc/gcc.c include esp.h static const char *cc1_spec We set that in esp.h if ENABLE_ESP. #ifdef EXTRA_SPECS: Add ESP_EXTRA_SPECS main(): Add do_self_spec esp_command_options_spec() --- gcc/gcc.c 2010-01-21 10:29:30.000000000 -0500 +++ gcc/gcc.c 2010-01-29 23:29:16.000000000 -0500 @@ -44,6 +44,7 @@ #include "opts.h" #include "params.h" #include "vec.h" +#include "esp.h" /* for --enable-esp support */ #include "filenames.h" /* By default there is no special suffix for target executables. */ @@ -822,7 +823,9 @@ static const char *asm_debug; static const char *cpp_spec = CPP_SPEC; +#ifndef ENABLE_ESP static const char *cc1_spec = CC1_SPEC; +#endif static const char *cc1plus_spec = CC1PLUS_SPEC; static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC; static const char *link_ssp_spec = LINK_SSP_SPEC; @@ -1699,18 +1705,23 @@ INIT_STATIC_SPEC ("sysroot_hdrs_suffix_spec", &sysroot_hdrs_suffix_spec), }; -#ifdef EXTRA_SPECS /* additional specs needed */ +/* EXTRA_SPECS needs to be defined */ +#ifndef EXTRA_SPECS +#define EXTRA_SPECS +#endif + +/* EXTRA_SPECS and ESP_EXTRA_SPECS add additional specs */ /* Structure to keep track of just the first two args of a spec_list. - That is all that the EXTRA_SPECS macro gives us. */ + That is all that the EXTRA_SPECS and ESP_EXTRA_SPECS macro gives us. */ struct spec_list_1 { const char *const name; const char *const ptr; }; -static const struct spec_list_1 extra_specs_1[] = { EXTRA_SPECS }; +/* ESP_EXTRA_SPECS before EXTRA_SPECS */ +static const struct spec_list_1 extra_specs_1[] = { ESP_EXTRA_SPECS, EXTRA_SPECS }; static struct spec_list *extra_specs = (struct spec_list *) 0; -#endif /* List of dynamically allocates specs that have been defined so far. */ @@ -1798,7 +1809,6 @@ if (verbose_flag) notice ("Using built-in specs.\n"); -#ifdef EXTRA_SPECS extra_specs = XCNEWVEC (struct spec_list, ARRAY_SIZE (extra_specs_1)); for (i = ARRAY_SIZE (extra_specs_1) - 1; i >= 0; i--) @@ -1811,7 +1821,6 @@ sl->ptr_spec = &sl->ptr; next = sl; } -#endif for (i = ARRAY_SIZE (static_specs) - 1; i >= 0; i--) { @@ -7096,6 +7123,12 @@ gcc_exec_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str, spec_version, dir_separator_str, NULL); +#ifdef ENABLE_ESP + /* Process ESP_COMMAND_OPTIONS_SPEC, adding any new options to the end + of the command line. */ + do_self_spec (esp_command_options_spec); +#endif + /* Now we have the specs. Set the `valid' bits for switches that match anything in any spec. */