Go to the first, previous, next, last section, table of contents.

# 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

Go to the first, previous, next, last section, table of contents.