Go forward to Target Conditionals.
Go backward to Submitting Patches.
Go up to Top.

Host Conditionals
*****************

   When GDB is configured and compiled, various macros are defined or
left undefined, to control compilation based on the attributes of the
host system.  These macros and their meanings (or if the meaning is not
documented here, then one of the source files where they are used is
indicated) are:

   *NOTE:  For now, both host and target conditionals are here.
Eliminate target conditionals from this list as they are identified.*

`BLOCK_ADDRESS_FUNCTION_RELATIVE'
     dbxread.c

`GDBINIT_FILENAME'
     The default name of GDB's initialization file (normally
     `.gdbinit').

`MEM_FNS_DECLARED'
     Your host config file defines this if it includes declarations of
     `memcpy' and `memset'.  Define this to avoid conflicts between the
     native include files and the declarations in `defs.h'.

`NO_SYS_FILE'
     Define this if your system does not have a `<sys/file.h>'.

`SIGWINCH_HANDLER'
     If your host defines `SIGWINCH', you can define this to be the
     name of a function to be called if `SIGWINCH' is received.

`SIGWINCH_HANDLER_BODY'
     Define this to expand into code that will define the function
     named by the expansion of `SIGWINCH_HANDLER'.

`ADDITIONAL_OPTIONS'
     main.c

`ADDITIONAL_OPTION_CASES'
     main.c

`ADDITIONAL_OPTION_HANDLER'
     main.c

`ADDITIONAL_OPTION_HELP'
     main.c

`AIX_BUGGY_PTRACE_CONTINUE'
     infptrace.c

`ALIGN_STACK_ON_STARTUP'
     Define this if your system is of a sort that will crash in
     `tgetent' if the stack happens not to be longword-aligned when
     `main' is called.  This is a rare situation, but is known to occur
     on several different types of systems.

`CFRONT_PRODUCER'
     dwarfread.c

`DBX_PARM_SYMBOL_CLASS'
     stabsread.c

`DEFAULT_PROMPT'
     The default value of the prompt string (normally `"(gdb) "').

`DEV_TTY'
     symmisc.c

`DO_REGISTERS_INFO'
     infcmd.c

`FCLOSE_PROVIDED'
     Define this if the system declares `fclose' in the headers
     included in `defs.h'.  This isn't needed unless your compiler is
     unusually anal.

     ANSI definition.

`FILES_INFO_HOOK'
     target.c

`FLOAT_INFO'
     infcmd.c

`FOPEN_RB'
     Define this if binary files are opened the same way as text files.

`GCC2_COMPILED_FLAG_SYMBOL'
     dbxread.c

`GCC_COMPILED_FLAG_SYMBOL'
     dbxread.c

`GCC_MANGLE_BUG'
     symtab.c

`GCC_PRODUCER'
     dwarfread.c

`GETENV_PROVIDED'
     Define this if the system declares `getenv' in its headers
     included in `defs.h'. This isn't needed unless your compiler is
     unusually anal.

`GPLUS_PRODUCER'
     dwarfread.c

`HAVE_MMAP'
     In some cases, use the system call `mmap' for reading symbol
     tables.  For some machines this allows for sharing and quick
     updates.

`HAVE_SIGSETMASK'
     Define this if the host system has job control, but does not
     define `sigsetmask()'.  Currently, this is only true of the
     RS/6000.

`HAVE_TERMIO'
     inflow.c

`HOST_BYTE_ORDER'
     The ordering of bytes in the host.  This must be defined to be
     either `BIG_ENDIAN' or `LITTLE_ENDIAN'.

`INT_MAX'
`INT_MIN'
`LONG_MAX'
`UINT_MAX'
`ULONG_MAX'
     Values for host-side constants.

`ISATTY'
     Substitute for isatty, if not available.

`KERNEL_DEBUGGING'
     tm-ultra3.h

`KERNEL_U_ADDR'
     Define this to the address of the `u' structure (the "user struct",
     also known as the "u-page") in kernel virtual memory.  GDB needs
     to know this so that it can subtract this address from absolute
     addresses in the upage, that are obtained via ptrace or from core
     files.  On systems that don't need this value, set it to zero.

`KERNEL_U_ADDR_BSD'
     Define this to cause GDB to determine the address of `u' at
     runtime, by using Berkeley-style `nlist' on the kernel's image in
     the root directory.

`KERNEL_U_ADDR_HPUX'
     Define this to cause GDB to determine the address of `u' at
     runtime, by using HP-style `nlist' on the kernel's image in the
     root directory.

`LCC_PRODUCER'
     dwarfread.c

`LONGEST'
     This is the longest integer type available on the host.  If not
     defined, it will default to `long long' or `long', depending on
     `CC_HAS_LONG_LONG'.

`CC_HAS_LONG_LONG'
     Define this if the host C compiler supports "long long".  This
     will be defined automatically if GNU CC is used to compile GDB.

`PRINTF_HAS_LONG_LONG'
     Define this if the host can handle printing of long long integers
     via a format directive "ll".

`LSEEK_NOT_LINEAR'
     source.c

`L_LNNO32'
     coffread.c

`L_SET'
     This macro is used as the argument to lseek (or, most commonly,
     bfd_seek).  FIXME, should be replaced by SEEK_SET instead, which
     is the POSIX equivalent.

`MAINTENANCE_CMDS'
     If the value of this is 1, then a number of optional maintenance
     commands are compiled in.

`MALLOC_INCOMPATIBLE'
     Define this if the system's prototype for `malloc' differs from the
     ANSI definition.

`MMAP_BASE_ADDRESS'
     When using HAVE_MMAP, the first mapping should go at this address.

`MMAP_INCREMENT'
     when using HAVE_MMAP, this is the increment between mappings.

`NEED_POSIX_SETPGID'
     Define this to use the POSIX version of `setpgid' to determine
     whether job control is available.

`NORETURN'
     If defined, this should be one or more tokens, such as `volatile',
     that can be used in both the declaration and definition of
     functions to indicate that they never return.  The default is
     already set correctly if compiling with GCC.  This will almost
     never need to be defined.

`ATTR_NORETURN'
     If defined, this should be one or more tokens, such as
     `__attribute__ ((noreturn))', that can be used in the declarations
     of functions to indicate that they never return.  The default is
     already set correctly if compiling with GCC.  This will almost
     never need to be defined.

`NOTICE_SIGNAL_HANDLING_CHANGE'
     infrun.c

`NO_HIF_SUPPORT'
     remote-mm.c

`NO_JOB_CONTROL'
     signals.h

`NO_MMALLOC'
     GDB will use the `mmalloc' library for memory allocation for symbol
     reading, unless this symbol is defined.  Define it on systems on
     which `mmalloc' does not work for some reason.  One example is the
     DECstation, where its RPC library can't cope with our redefinition
     of `malloc' to call `mmalloc'.  When defining `NO_MMALLOC', you
     will also have to override the setting of `MMALLOC_LIB' to empty,
     in the Makefile.  Therefore, this define is usually set on the
     command line by overriding `MMALLOC_DISABLE' in `config/*/*.mh',
     rather than by defining it in `xm-*.h'.

`NO_MMALLOC_CHECK'
     Define this if you are using `mmalloc', but don't want the overhead
     of checking the heap with `mmcheck'.

`NO_SIGINTERRUPT'
     remote-adapt.c

`NUMERIC_REG_NAMES'
     mips-tdep.c

`N_SETV'
     dbxread.c

`N_SET_MAGIC'
     hppabsd-tdep.c

`ONE_PROCESS_WRITETEXT'
     breakpoint.c

`O_BINARY'
     exec.c

`O_RDONLY'
     xm-ultra3.h

`PCC_SOL_BROKEN'
     dbxread.c

`PC_LOAD_SEGMENT'
     stack.c

`PRINT_RANDOM_SIGNAL'
     infcmd.c

`PRINT_REGISTER_HOOK'
     infcmd.c

`PROCESS_LINENUMBER_HOOK'
     buildsym.c

`PROLOGUE_FIRSTLINE_OVERLAP'
     infrun.c

`PUSH_ARGUMENTS'
     valops.c

`PYRAMID_CONTROL_FRAME_DEBUGGING'
     pyr-xdep.c

`PYRAMID_CORE'
     pyr-xdep.c

`PYRAMID_PTRACE'
     pyr-xdep.c

`REGISTER_BYTES'
     remote.c

`REG_STACK_SEGMENT'
     exec.c

`REG_STRUCT_HAS_ADDR'
     findvar.c

`R_FP'
     dwarfread.c

`R_OK'
     xm-altos.h

`SEEK_END'
     state.c

`SEEK_SET'
     state.c

`SEM'
     coffread.c

`SHELL_COMMAND_CONCAT'
     infrun.c

`SHELL_FILE'
     infrun.c

`SHIFT_INST_REGS'
     breakpoint.c

`SIGTRAP_STOP_AFTER_LOAD'
     infrun.c

`STACK_ALIGN'
     valops.c

`STOP_SIGNAL'
     main.c

`SUN4_COMPILER_FEATURE'
     infrun.c

`SUN_FIXED_LBRAC_BUG'
     dbxread.c

`SVR4_SHARED_LIBS'
     solib.c

`SYMBOL_RELOADING_DEFAULT'
     symfile.c

`TIOCGETC'
     inflow.c

`TIOCGLTC'
     inflow.c

`TIOCGPGRP'
     inflow.c

`TIOCLGET'
     inflow.c

`TIOCLSET'
     inflow.c

`TIOCNOTTY'
     inflow.c

`UPAGES'
     altos-xdep.c

`USE_O_NOCTTY'
     inflow.c

`USG'
     Means that System V (prior to SVR4) include files are in use.
     (FIXME:  This symbol is abused in `infrun.c', `regex.c',
     `remote-nindy.c', and `utils.c' for other things, at the moment.)

`WRS_ORIG'
     remote-vx.c

`alloca'
     defs.h

`const'
     defs.h

`lint'
     Define this to help lint in some stupid way.

`volatile'
     Define this to override the defaults of `__volatile__' or `/**/'.

   Platform-specific host conditionals.

`ALTOS'
     altos-xdep.c

`ALTOS_AS'
     xm-altos.h

`MOTOROLA'
     xm-altos.h

`NBPG'
     altos-xdep.c

`BCS'
     tm-delta88.h

`DELTA88'
     m88k-xdep.c

`DGUX'
     m88k-xdep.c

`F_OK'
     xm-ultra3.h

   Regex conditionals.

`C_ALLOCA'
     regex.c

`NFAILURES'
     regex.c

`RE_NREGS'
     regex.h

`SIGN_EXTEND_CHAR'
     regex.c

`SWITCH_ENUM_BUG'
     regex.c

`SYNTAX_TABLE'
     regex.c

`Sword'
     regex.c

`sparc'
     regex.c

`test'
     regex.c