gcc.c (getenv_spec_function): New function.
* gcc.c (getenv_spec_function): New function. (static_spec_functions): Add it. * config/vxworks.h (VXWORKS_TARGET_DIR): Remove. (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks header files. From-SVN: r122240
This commit is contained in:
parent
b69862d1ef
commit
30d8946bae
3 changed files with 38 additions and 4 deletions
|
@ -1,3 +1,11 @@
|
|||
2007-02-22 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* gcc.c (getenv_spec_function): New function.
|
||||
(static_spec_functions): Add it.
|
||||
* config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
|
||||
(VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
|
||||
header files.
|
||||
|
||||
2007-02-22 Michael Matz <matz@suse.de
|
||||
|
||||
PR c++/29433
|
||||
|
|
|
@ -26,8 +26,11 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
|||
like a traditional Unix, with more external files. Most of our specs
|
||||
must be aware of the difference. */
|
||||
|
||||
/* The directory containing the VxWorks target headers. */
|
||||
#define VXWORKS_TARGET_DIR "/home/tornado/base6/target"
|
||||
/* We look for the VxWorks header files using the environment
|
||||
variables that are set in VxWorks to indicate the location of the
|
||||
system header files. We use -idirafter so that the GCC's own
|
||||
header-file directories (containing <stddef.h>, etc.) come before
|
||||
the VxWorks system header directories. */
|
||||
|
||||
/* Since we provide a default -isystem, expand -isystem on the command
|
||||
line early. */
|
||||
|
@ -35,9 +38,9 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
|
|||
#define VXWORKS_ADDITIONAL_CPP_SPEC " \
|
||||
%{!nostdinc:%{isystem*}} \
|
||||
%{mrtp: -D__RTP__=1 \
|
||||
%{!nostdinc:-isystem " VXWORKS_TARGET_DIR "/usr/h}} \
|
||||
%{!nostdinc:-idirafter %:getenv(WIND_USR /h)}} \
|
||||
%{!mrtp:-D_WRS_KERNEL=1 \
|
||||
%{!nostdinc:-isystem " VXWORKS_TARGET_DIR "/h}}"
|
||||
%{!nostdinc:-idirafter %:getenv(WIND_BASE /target/h)}}"
|
||||
|
||||
/* The references to __init and __fini will be satisfied by
|
||||
libc_internal.a. */
|
||||
|
|
23
gcc/gcc.c
23
gcc/gcc.c
|
@ -350,6 +350,7 @@ static void init_gcc_specs (struct obstack *, const char *, const char *,
|
|||
static const char *convert_filename (const char *, int, int);
|
||||
#endif
|
||||
|
||||
static const char *getenv_spec_function (int, const char **);
|
||||
static const char *if_exists_spec_function (int, const char **);
|
||||
static const char *if_exists_else_spec_function (int, const char **);
|
||||
static const char *replace_outfile_spec_function (int, const char **);
|
||||
|
@ -1601,6 +1602,7 @@ static struct spec_list *specs = (struct spec_list *) 0;
|
|||
|
||||
static const struct spec_function static_spec_functions[] =
|
||||
{
|
||||
{ "getenv", getenv_spec_function },
|
||||
{ "if-exists", if_exists_spec_function },
|
||||
{ "if-exists-else", if_exists_else_spec_function },
|
||||
{ "replace-outfile", replace_outfile_spec_function },
|
||||
|
@ -7645,6 +7647,27 @@ print_multilib_info (void)
|
|||
}
|
||||
}
|
||||
|
||||
/* getenv built-in spec function.
|
||||
|
||||
Returns the value of the environment variable given by its first
|
||||
argument, concatenated with the second argument. If the
|
||||
environment variable is not defined, a fatal error is issued. */
|
||||
|
||||
static const char *
|
||||
getenv_spec_function (int argc, const char **argv)
|
||||
{
|
||||
char *value;
|
||||
|
||||
if (argc != 2)
|
||||
return NULL;
|
||||
|
||||
value = getenv (argv[0]);
|
||||
if (!value)
|
||||
fatal ("environment variable \"%s\" not defined", argv[0]);
|
||||
|
||||
return concat (value, argv[1], NULL);
|
||||
}
|
||||
|
||||
/* if-exists built-in spec function.
|
||||
|
||||
Checks to see if the file specified by the absolute pathname in
|
||||
|
|
Loading…
Add table
Reference in a new issue