You can control the compilation driver.
SWITCH_TAKES_ARG (char)
By default, this macro is defined to handle the standard options properly. You need not define it unless you wish to add additional options which take arguments.
WORD_SWITCH_TAKES_ARG (name)
SWITCH_TAKES_ARG
is used for multi-character option names.
By default, this macro is defined as DEFAULT_WORD_SWITCH_TAKES_ARG
, which handles the standard options properly. You need not define WORD_SWITCH_TAKES_ARG
unless you wish to add additional options which take arguments. Any redefinition should call DEFAULT_WORD_SWITCH_TAKES_ARG
and then check for additional options.
SWITCHES_NEED_SPACES
If this macro is not defined, the default value is 0.
CPP_SPEC
Do not define this macro if it does not need to do anything.
NO_BUILTIN_SIZE_TYPE
__SIZE_TYPE__
. The macro __SIZE_TYPE__
must then be defined by CPP_SPEC
instead.
This should be defined if SIZE_TYPE
depends on target dependent flags which are not accessible to the preprocessor. Otherwise, it should not be defined.
NO_BUILTIN_PTRDIFF_TYPE
__PTRDIFF_TYPE__
. The macro __PTRDIFF_TYPE__
must then be defined by CPP_SPEC
instead.
This should be defined if PTRDIFF_TYPE
depends on target dependent flags which are not accessible to the preprocessor. Otherwise, it should not be defined.
SIGNED_CHAR_SPEC
char
will be treated as unsigned char
by cc1
. Do not define this macro unless you need to override the default definition.
CC1_SPEC
cc1
. It can also specify how to translate options you give to GNU CC into options for GNU CC to pass to the cc1
. Do not define this macro if it does not need to do anything.
CC1PLUS_SPEC
cc1plus
. It can also specify how to translate options you give to GNU CC into options for GNU CC to pass to the cc1plus
. Do not define this macro if it does not need to do anything.
ASM_SPEC
Do not define this macro if it does not need to do anything.
ASM_FINAL_SPEC
Do not define this macro if it does not need to do anything.
LINK_SPEC
Do not define this macro if it does not need to do anything.
LIB_SPEC
LINK_SPEC
. The difference between the two is that LIB_SPEC
is used at the end of the command given to the linker. If this macro is not defined, a default is provided that loads the standard C library from the usual place. See `gcc.c'.
LIBGCC_SPEC
LIB_SPEC
. If this macro is not defined, the GNU CC driver provides a default that passes the string `-lgcc' to the linker unless the `-shared' option is specified.
STARTFILE_SPEC
LINK_SPEC
. The difference between the two is that STARTFILE_SPEC
is used at the very beginning of the command given to the linker. If this macro is not defined, a default is provided that loads the standard C startup file from the usual place. See `gcc.c'.
ENDFILE_SPEC
LINK_SPEC
. The difference between the two is that ENDFILE_SPEC
is used at the very end of the command given to the linker. Do not define this macro if it does not need to do anything.
LINK_LIBGCC_SPECIAL
gcc
should find the library `libgcc.a' by hand, rather than passing the argument `-lgcc' to tell the linker to do the search; also, gcc
should not generate `-L' options to pass to the linker (as it normally does).
LINK_LIBGCC_SPECIAL_1
gcc
should find the library `libgcc.a' by hand, rather than passing the argument `-lgcc' to tell the linker to do the search.
RELATIVE_PREFIX_NOT_LINKDIR
gcc
that it should only translate a `-B' prefix into a `-L' linker option if the prefix indicates an absolute file name.
STANDARD_EXEC_PREFIX
MD_EXEC_PREFIX
STANDARD_EXEC_PREFIX
. MD_EXEC_PREFIX
is not searched when the `-b' option is used, or the compiler is built as a cross compiler.
STANDARD_STARTFILE_PREFIX
MD_STARTFILE_PREFIX
MD_EXEC_PREFIX
is not searched when the `-b' option is used, or when the compiler is built as a cross compiler.
MD_STARTFILE_PREFIX_1
INIT_ENVIRONMENT
putenv
to initialize the necessary environment variables.
LOCAL_INCLUDE_DIR
LOCAL_INCLUDE_DIR
comes before SYSTEM_INCLUDE_DIR
in the search order. Cross compilers do not use this macro and do not search either `/usr/local/include' or its replacement.
SYSTEM_INCLUDE_DIR
SYSTEM_INCLUDE_DIR
comes before STANDARD_INCLUDE_DIR
in the search order. Cross compilers do not use this macro and do not search the directory specified.
STANDARD_INCLUDE_DIR
Cross compilers do not use this macro and do not search either `/usr/include' or its replacement.
INCLUDE_DEFAULTS
GCC_INCLUDE_DIR
, LOCAL_INCLUDE_DIR
, SYSTEM_INCLUDE_DIR
, GPLUSPLUS_INCLUDE_DIR
, and STANDARD_INCLUDE_DIR
. In addition, GPLUSPLUS_INCLUDE_DIR
and GCC_INCLUDE_DIR
are defined automatically by `Makefile', and specify private search areas for GCC. The directory GPLUSPLUS_INCLUDE_DIR
is used only for C++ programs. The definition should be an initializer for an array of structures. Each array element should have two elements: the directory name (a string constant) and a flag for C++-only directories. Mark the end of the array with a null element. For example, here is the definition used for VMS:
#define INCLUDE_DEFAULTS \ { \ { "GNU_GXX_INCLUDE:", 1}, \ { "GNU_CC_INCLUDE:", 0}, \ { "SYS$SYSROOT:[SYSLIB.]", 0}, \ { ".", 0}, \ { 0, 0} \ }
Here is the order of prefixes tried for exec files:
Any prefixes specified by the user with `-B'.
The environment variable GCC_EXEC_PREFIX
, if any.
The directories specified by the environment variable COMPILER_PATH
.
The macro STANDARD_EXEC_PREFIX
.
`/usr/lib/gcc/'.
The macro MD_EXEC_PREFIX
, if any.
Here is the order of prefixes tried for startfiles:
Any prefixes specified by the user with `-B'.
The environment variable GCC_EXEC_PREFIX
, if any.
The directories specified by the environment variable LIBRARY_PATH
(native only, cross compilers do not use this).
The macro STANDARD_EXEC_PREFIX
.
`/usr/lib/gcc/'.
The macro MD_EXEC_PREFIX
, if any.
The macro MD_STARTFILE_PREFIX
, if any.
The macro STANDARD_STARTFILE_PREFIX
.
`/lib/'.
`/usr/lib/'.