⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tm.texi

📁 理解和实践操作系统的一本好书
💻 TEXI
📖 第 1 页 / 共 5 页
字号:
@defmac LINK_EH_SPECIf defined, this C string constant is added to @code{LINK_SPEC}.When @code{USE_LD_AS_NEEDED} is zero or undefined, it also affectsthe modifications to @code{LIBGCC_SPEC} mentioned in@code{REAL_LIBGCC_SPEC}.@end defmac@defmac STARTFILE_SPECAnother C string constant used much like @code{LINK_SPEC}.  Thedifference between the two is that @code{STARTFILE_SPEC} is used atthe very beginning of the command given to the linker.If this macro is not defined, a default is provided that loads thestandard C startup file from the usual place.  See @file{gcc.c}.@end defmac@defmac ENDFILE_SPECAnother C string constant used much like @code{LINK_SPEC}.  Thedifference between the two is that @code{ENDFILE_SPEC} is used atthe very end of the command given to the linker.Do not define this macro if it does not need to do anything.@end defmac@defmac THREAD_MODEL_SPECGCC @code{-v} will print the thread model GCC was configured to use.However, this doesn't work on platforms that are multilibbed on threadmodels, such as AIX 4.3.  On such platforms, define@code{THREAD_MODEL_SPEC} such that it evaluates to a string withoutblanks that names one of the recognized thread models.  @code{%*}, thedefault value of this macro, will expand to the value of@code{thread_file} set in @file{config.gcc}.@end defmac@defmac SYSROOT_SUFFIX_SPECDefine this macro to add a suffix to the target sysroot when GCC isconfigured with a sysroot.  This will cause GCC to search for usr/lib,et al, within sysroot+suffix.@end defmac@defmac SYSROOT_HEADERS_SUFFIX_SPECDefine this macro to add a headers_suffix to the target sysroot whenGCC is configured with a sysroot.  This will cause GCC to pass theupdated sysroot+headers_suffix to CPP, causing it to search forusr/include, et al, within sysroot+headers_suffix.@end defmac@defmac EXTRA_SPECSDefine this macro to provide additional specifications to put in the@file{specs} file that can be used in various specifications like@code{CC1_SPEC}.The definition should be an initializer for an array of structures,containing a string constant, that defines the specification name, and astring constant that provides the specification.Do not define this macro if it does not need to do anything.@code{EXTRA_SPECS} is useful when an architecture contains severalrelated targets, which have various @code{@dots{}_SPECS} which are similarto each other, and the maintainer would like one central place to keepthese definitions.For example, the PowerPC System V.4 targets use @code{EXTRA_SPECS} todefine either @code{_CALL_SYSV} when the System V calling sequence isused or @code{_CALL_AIX} when the older AIX-based calling sequence isused.The @file{config/rs6000/rs6000.h} target file defines:@smallexample#define EXTRA_SPECS \  @{ "cpp_sysv_default", CPP_SYSV_DEFAULT @},#define CPP_SYS_DEFAULT ""@end smallexampleThe @file{config/rs6000/sysv.h} target file defines:@smallexample#undef CPP_SPEC#define CPP_SPEC \"%@{posix: -D_POSIX_SOURCE @} \%@{mcall-sysv: -D_CALL_SYSV @} \%@{!mcall-sysv: %(cpp_sysv_default) @} \%@{msoft-float: -D_SOFT_FLOAT@} %@{mcpu=403: -D_SOFT_FLOAT@}"#undef CPP_SYSV_DEFAULT#define CPP_SYSV_DEFAULT "-D_CALL_SYSV"@end smallexamplewhile the @file{config/rs6000/eabiaix.h} target file defines@code{CPP_SYSV_DEFAULT} as:@smallexample#undef CPP_SYSV_DEFAULT#define CPP_SYSV_DEFAULT "-D_CALL_AIX"@end smallexample@end defmac@defmac LINK_LIBGCC_SPECIAL_1Define this macro if the driver program should find the library@file{libgcc.a}.  If you do not define this macro, the driver program will passthe argument @option{-lgcc} to tell the linker to do the search.@end defmac@defmac LINK_GCC_C_SEQUENCE_SPECThe sequence in which libgcc and libc are specified to the linker.By default this is @code{%G %L %G}.@end defmac@defmac LINK_COMMAND_SPECA C string constant giving the complete command line need to execute thelinker.  When you do this, you will need to update your port each time achange is made to the link command line within @file{gcc.c}.  Therefore,define this macro only if you need to completely redefine the commandline for invoking the linker and there is no other way to accomplishthe effect you need.  Overriding this macro may be avoidable by overriding@code{LINK_GCC_C_SEQUENCE_SPEC} instead.@end defmac@defmac LINK_ELIMINATE_DUPLICATE_LDIRECTORIESA nonzero value causes @command{collect2} to remove duplicate @option{-L@var{directory}} searchdirectories from linking commands.  Do not give it a nonzero value ifremoving duplicate search directories changes the linker's semantics.@end defmac@defmac MULTILIB_DEFAULTSDefine this macro as a C expression for the initializer of an array ofstring to tell the driver program which options are defaults for thistarget and thus do not need to be handled specially when using@code{MULTILIB_OPTIONS}.Do not define this macro if @code{MULTILIB_OPTIONS} is not defined inthe target makefile fragment or if none of the options listed in@code{MULTILIB_OPTIONS} are set by default.@xref{Target Fragment}.@end defmac@defmac RELATIVE_PREFIX_NOT_LINKDIRDefine this macro to tell @command{gcc} that it should only translatea @option{-B} prefix into a @option{-L} linker option if the prefixindicates an absolute file name.@end defmac@defmac MD_EXEC_PREFIXIf defined, this macro is an additional prefix to try after@code{STANDARD_EXEC_PREFIX}.  @code{MD_EXEC_PREFIX} is not searchedwhen the @option{-b} option is used, or the compiler is built as a crosscompiler.  If you define @code{MD_EXEC_PREFIX}, then be sure to add itto the list of directories used to find the assembler in @file{configure.in}.@end defmac@defmac STANDARD_STARTFILE_PREFIXDefine this macro as a C string constant if you wish to override thestandard choice of @code{libdir} as the default prefix totry when searching for startup files such as @file{crt0.o}.@code{STANDARD_STARTFILE_PREFIX} is not searched when the compileris built as a cross compiler.@end defmac@defmac STANDARD_STARTFILE_PREFIX_1Define this macro as a C string constant if you wish to override thestandard choice of @code{/lib} as a prefix to try after the default prefixwhen searching for startup files such as @file{crt0.o}.@code{STANDARD_STARTFILE_PREFIX_1} is not searched when the compileris built as a cross compiler.@end defmac@defmac STANDARD_STARTFILE_PREFIX_2Define this macro as a C string constant if you wish to override thestandard choice of @code{/lib} as yet another prefix to try after thedefault prefix when searching for startup files such as @file{crt0.o}.@code{STANDARD_STARTFILE_PREFIX_2} is not searched when the compileris built as a cross compiler.@end defmac@defmac MD_STARTFILE_PREFIXIf defined, this macro supplies an additional prefix to try after thestandard prefixes.  @code{MD_EXEC_PREFIX} is not searched when the@option{-b} option is used, or when the compiler is built as a crosscompiler.@end defmac@defmac MD_STARTFILE_PREFIX_1If defined, this macro supplies yet another prefix to try after thestandard prefixes.  It is not searched when the @option{-b} option isused, or when the compiler is built as a cross compiler.@end defmac@defmac INIT_ENVIRONMENTDefine this macro as a C string constant if you wish to set environmentvariables for programs called by the driver, such as the assembler andloader.  The driver passes the value of this macro to @code{putenv} toinitialize the necessary environment variables.@end defmac@defmac LOCAL_INCLUDE_DIRDefine this macro as a C string constant if you wish to override thestandard choice of @file{/usr/local/include} as the default prefix totry when searching for local header files.  @code{LOCAL_INCLUDE_DIR}comes before @code{SYSTEM_INCLUDE_DIR} in the search order.Cross compilers do not search either @file{/usr/local/include} or itsreplacement.@end defmac@defmac MODIFY_TARGET_NAMEDefine this macro if you wish to define command-line switches thatmodify the default target name.For each switch, you can include a string to be appended to the firstpart of the configuration name or a string to be deleted from theconfiguration name, if present.  The definition should be an initializerfor an array of structures.  Each array element should have threeelements: the switch name (a string constant, including the initialdash), one of the enumeration codes @code{ADD} or @code{DELETE} toindicate whether the string should be inserted or deleted, and the stringto be inserted or deleted (a string constant).For example, on a machine where @samp{64} at the end of theconfiguration name denotes a 64-bit target and you want the @option{-32}and @option{-64} switches to select between 32- and 64-bit targets, you wouldcode@smallexample#define MODIFY_TARGET_NAME \  @{ @{ "-32", DELETE, "64"@}, \     @{"-64", ADD, "64"@}@}@end smallexample@end defmac@defmac SYSTEM_INCLUDE_DIRDefine this macro as a C string constant if you wish to specify asystem-specific directory to search for header files before the standarddirectory.  @code{SYSTEM_INCLUDE_DIR} comes before@code{STANDARD_INCLUDE_DIR} in the search order.Cross compilers do not use this macro and do not search the directoryspecified.@end defmac@defmac STANDARD_INCLUDE_DIRDefine this macro as a C string constant if you wish to override thestandard choice of @file{/usr/include} as the default prefix totry when searching for header files.Cross compilers ignore this macro and do not search either@file{/usr/include} or its replacement.@end defmac@defmac STANDARD_INCLUDE_COMPONENTThe ``component'' corresponding to @code{STANDARD_INCLUDE_DIR}.See @code{INCLUDE_DEFAULTS}, below, for the description of components.If you do not define this macro, no component is used.@end defmac@defmac INCLUDE_DEFAULTSDefine this macro if you wish to override the entire default search pathfor include files.  For a native compiler, the default search pathusually consists of @code{GCC_INCLUDE_DIR}, @code{LOCAL_INCLUDE_DIR},@code{SYSTEM_INCLUDE_DIR}, @code{GPLUSPLUS_INCLUDE_DIR}, and@code{STANDARD_INCLUDE_DIR}.  In addition, @code{GPLUSPLUS_INCLUDE_DIR}and @code{GCC_INCLUDE_DIR} are defined automatically by @file{Makefile},and specify private search areas for GCC@.  The directory@code{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 four elements: the directory name (astring constant), the component name (also a string constant), a flagfor C++-only directories,and a flag showing that the includes in the directory don't need to bewrapped in @code{extern @samp{C}} when compiling C++.  Mark the end ofthe array with a null element.The component name denotes what GNU package the include file is part of,if any, in all uppercase letters.  For example, it might be @samp{GCC}or @samp{BINUTILS}.  If the package is part of a vendor-suppliedoperating system, code the component name as @samp{0}.For example, here is the definition used for VAX/VMS:@smallexample#define INCLUDE_DEFAULTS \@{                                       \  @{ "GNU_GXX_INCLUDE:", "G++", 1, 1@},   \  @{ "GNU_CC_INCLUDE:", "GCC", 0, 0@},    \  @{ "SYS$SYSROOT:[SYSLIB.]", 0, 0, 0@},  \  @{ ".", 0, 0, 0@},                      \  @{ 0, 0, 0, 0@}                         \@}@end smallexample@end defmacHere is the order of prefixes tried for exec files:@enumerate@itemAny prefixes specified by the user with @option{-B}.@itemThe environment variable @code{GCC_EXEC_PREFIX} or, if @code{GCC_EXEC_PREFIX}is not set and the compiler has not been installed in the configure-time @var{prefix}, the location in which the compiler has actually been installed.@itemThe directories specified by the environment variable @code{COMPILER_PATH}.@itemThe macro @code{STANDARD_EXEC_PREFIX}, if the compiler has been installedin the configured-time @var{prefix}. @itemThe location @file{/usr/libexec/gcc/}, but only if this is a native compiler. @item

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -