|
|
1.1.1.2 ! root 1: This is Info file gcc.info, produced by Makeinfo-1.55 from the input 1.1 root 2: file gcc.texi. 3: 4: This file documents the use and the internals of the GNU compiler. 5: 6: Published by the Free Software Foundation 675 Massachusetts Avenue 7: Cambridge, MA 02139 USA 8: 1.1.1.2 ! root 9: Copyright (C) 1988, 1989, 1992, 1993, 1994 Free Software Foundation, ! 10: Inc. 1.1 root 11: 12: Permission is granted to make and distribute verbatim copies of this 13: manual provided the copyright notice and this permission notice are 14: preserved on all copies. 15: 16: Permission is granted to copy and distribute modified versions of 17: this manual under the conditions for verbatim copying, provided also 1.1.1.2 ! root 18: that the sections entitled "GNU General Public License," "Funding for ! 19: Free Software," and "Protect Your Freedom--Fight `Look And Feel'" are ! 20: included exactly as in the original, and provided that the entire ! 21: resulting derived work is distributed under the terms of a permission ! 22: notice identical to this one. 1.1 root 23: 24: Permission is granted to copy and distribute translations of this 25: manual into another language, under the above conditions for modified 26: versions, except that the sections entitled "GNU General Public 1.1.1.2 ! root 27: License," "Funding for Free Software," and "Protect Your Freedom--Fight ! 28: `Look And Feel'", and this permission notice, may be included in ! 29: translations approved by the Free Software Foundation instead of in the ! 30: original English. 1.1 root 31: 32: 1.1.1.2 ! root 33: File: gcc.info, Node: Misc, Prev: Cross-compilation, Up: Target Macros 1.1 root 34: 1.1.1.2 ! root 35: Miscellaneous Parameters ! 36: ======================== 1.1 root 37: 1.1.1.2 ! root 38: Here are several miscellaneous parameters. 1.1 root 39: 1.1.1.2 ! root 40: `PREDICATE_CODES' ! 41: Define this if you have defined special-purpose predicates in the ! 42: file `MACHINE.c'. This macro is called within an initializer of an ! 43: array of structures. The first field in the structure is the name ! 44: of a predicate and the second field is an array of rtl codes. For ! 45: each predicate, list all rtl codes that can be in expressions ! 46: matched by the predicate. The list should have a trailing comma. ! 47: Here is an example of two entries in the list for a typical RISC ! 48: machine: ! 49: ! 50: #define PREDICATE_CODES \ ! 51: {"gen_reg_rtx_operand", {SUBREG, REG}}, \ ! 52: {"reg_or_short_cint_operand", {SUBREG, REG, CONST_INT}}, ! 53: ! 54: Defining this macro does not affect the generated code (however, ! 55: incorrect definitions that omit an rtl code that may be matched by ! 56: the predicate can cause the compiler to malfunction). Instead, it ! 57: allows the table built by `genrecog' to be more compact and ! 58: efficient, thus speeding up the compiler. The most important ! 59: predicates to include in the list specified by this macro are ! 60: thoses used in the most insn patterns. ! 61: ! 62: `CASE_VECTOR_MODE' ! 63: An alias for a machine mode name. This is the machine mode that ! 64: elements of a jump-table should have. ! 65: ! 66: `CASE_VECTOR_PC_RELATIVE' ! 67: Define this macro if jump-tables should contain relative addresses. ! 68: ! 69: `CASE_DROPS_THROUGH' ! 70: Define this if control falls through a `case' insn when the index ! 71: value is out of range. This means the specified default-label is ! 72: actually ignored by the `case' insn proper. ! 73: ! 74: `CASE_VALUES_THRESHOLD' ! 75: Define this to be the smallest number of different values for ! 76: which it is best to use a jump-table instead of a tree of ! 77: conditional branches. The default is four for machines with a ! 78: `casesi' instruction and five otherwise. This is best for most ! 79: machines. ! 80: ! 81: `WORD_REGISTER_OPERATIONS' ! 82: Define this macro if operations between registers with integral ! 83: mode smaller than a word are always performed on the entire ! 84: register. Most RISC machines have this property and most CISC ! 85: machines do not. ! 86: ! 87: `LOAD_EXTEND_OP (MODE)' ! 88: Define this macro to be a C expression indicating when insns that ! 89: read memory in MODE, an integral mode narrower than a word, set the ! 90: bits outside of MODE to be either the sign-extension or the ! 91: zero-extension of the data read. Return `SIGN_EXTEND' for values ! 92: of MODE for which the insn sign-extends, `ZERO_EXTEND' for which ! 93: it zero-extends, and `NIL' for other modes. ! 94: ! 95: This macro is not called with MODE non-integral or with a width ! 96: greater than or equal to `BITS_PER_WORD', so you may return any ! 97: value in this case. Do not define this macro if it would always ! 98: return `NIL'. On machines where this macro is defined, you will ! 99: normally define it as the constant `SIGN_EXTEND' or `ZERO_EXTEND'. ! 100: ! 101: `IMPLICIT_FIX_EXPR' ! 102: An alias for a tree code that should be used by default for ! 103: conversion of floating point values to fixed point. Normally, ! 104: `FIX_ROUND_EXPR' is used. ! 105: ! 106: `FIXUNS_TRUNC_LIKE_FIX_TRUNC' ! 107: Define this macro if the same instructions that convert a floating ! 108: point number to a signed fixed point number also convert validly ! 109: to an unsigned one. ! 110: ! 111: `EASY_DIV_EXPR' ! 112: An alias for a tree code that is the easiest kind of division to ! 113: compile code for in the general case. It may be `TRUNC_DIV_EXPR', ! 114: `FLOOR_DIV_EXPR', `CEIL_DIV_EXPR' or `ROUND_DIV_EXPR'. These four ! 115: division operators differ in how they round the result to an ! 116: integer. `EASY_DIV_EXPR' is used when it is permissible to use ! 117: any of those kinds of division and the choice should be made on ! 118: the basis of efficiency. ! 119: ! 120: `MOVE_MAX' ! 121: The maximum number of bytes that a single instruction can move ! 122: quickly from memory to memory. ! 123: ! 124: `MAX_MOVE_MAX' ! 125: The maximum number of bytes that a single instruction can move ! 126: quickly from memory to memory. If this is undefined, the default ! 127: is `MOVE_MAX'. Otherwise, it is the constant value that is the ! 128: largest value that `MOVE_MAX' can have at run-time. ! 129: ! 130: `SHIFT_COUNT_TRUNCATED' ! 131: A C expression that is nonzero if on this machine the number of ! 132: bits actually used for the count of a shift operation is equal to ! 133: the number of bits needed to represent the size of the object ! 134: being shifted. When this macro is non-zero, the compiler will ! 135: assume that it is safe to omit a sign-extend, zero-extend, and ! 136: certain bitwise `and' instructions that truncates the count of a ! 137: shift operation. On machines that have instructions that act on ! 138: bitfields at variable positions, which may include `bit test' ! 139: instructions, a nonzero `SHIFT_COUNT_TRUNCATED' also enables ! 140: deletion of truncations of the values that serve as arguments to ! 141: bitfield instructions. ! 142: ! 143: If both types of instructions truncate the count (for shifts) and ! 144: position (for bitfield operations), or if no variable-position ! 145: bitfield instructions exist, you should define this macro. ! 146: ! 147: However, on some machines, such as the 80386 and the 680x0, ! 148: truncation only applies to shift operations and not the (real or ! 149: pretended) bitfield operations. Define `SHIFT_COUNT_TRUNCATED' to ! 150: be zero on such machines. Instead, add patterns to the `md' file ! 151: that include the implied truncation of the shift instructions. ! 152: ! 153: You need not define this macro if it would always have the value ! 154: of zero. ! 155: ! 156: `TRULY_NOOP_TRUNCATION (OUTPREC, INPREC)' ! 157: A C expression which is nonzero if on this machine it is safe to ! 158: "convert" an integer of INPREC bits to one of OUTPREC bits (where ! 159: OUTPREC is smaller than INPREC) by merely operating on it as if it ! 160: had only OUTPREC bits. ! 161: ! 162: On many machines, this expression can be 1. ! 163: ! 164: When `TRULY_NOOP_TRUNCATION' returns 1 for a pair of sizes for ! 165: modes for which `MODES_TIEABLE_P' is 0, suboptimal code can result. ! 166: If this is the case, making `TRULY_NOOP_TRUNCATION' return 0 in ! 167: such cases may improve things. ! 168: ! 169: `STORE_FLAG_VALUE' ! 170: A C expression describing the value returned by a comparison ! 171: operator with an integral mode and stored by a store-flag ! 172: instruction (`sCOND') when the condition is true. This ! 173: description must apply to *all* the `sCOND' patterns and all the ! 174: comparison operators whose results have a `MODE_INT' mode. ! 175: ! 176: A value of 1 or -1 means that the instruction implementing the ! 177: comparison operator returns exactly 1 or -1 when the comparison is ! 178: true and 0 when the comparison is false. Otherwise, the value ! 179: indicates which bits of the result are guaranteed to be 1 when the ! 180: comparison is true. This value is interpreted in the mode of the ! 181: comparison operation, which is given by the mode of the first ! 182: operand in the `sCOND' pattern. Either the low bit or the sign ! 183: bit of `STORE_FLAG_VALUE' be on. Presently, only those bits are ! 184: used by the compiler. ! 185: ! 186: If `STORE_FLAG_VALUE' is neither 1 or -1, the compiler will ! 187: generate code that depends only on the specified bits. It can also ! 188: replace comparison operators with equivalent operations if they ! 189: cause the required bits to be set, even if the remaining bits are ! 190: undefined. For example, on a machine whose comparison operators ! 191: return an `SImode' value and where `STORE_FLAG_VALUE' is defined as ! 192: `0x80000000', saying that just the sign bit is relevant, the ! 193: expression ! 194: ! 195: (ne:SI (and:SI X (const_int POWER-OF-2)) (const_int 0)) ! 196: ! 197: can be converted to ! 198: ! 199: (ashift:SI X (const_int N)) ! 200: ! 201: where N is the appropriate shift count to move the bit being ! 202: tested into the sign bit. ! 203: ! 204: There is no way to describe a machine that always sets the ! 205: low-order bit for a true value, but does not guarantee the value ! 206: of any other bits, but we do not know of any machine that has such ! 207: an instruction. If you are trying to port GNU CC to such a ! 208: machine, include an instruction to perform a logical-and of the ! 209: result with 1 in the pattern for the comparison operators and let ! 210: us know (*note How to Report Bugs: Bug Reporting.). ! 211: ! 212: Often, a machine will have multiple instructions that obtain a ! 213: value from a comparison (or the condition codes). Here are rules ! 214: to guide the choice of value for `STORE_FLAG_VALUE', and hence the ! 215: instructions to be used: ! 216: ! 217: * Use the shortest sequence that yields a valid definition for ! 218: `STORE_FLAG_VALUE'. It is more efficient for the compiler to ! 219: "normalize" the value (convert it to, e.g., 1 or 0) than for ! 220: the comparison operators to do so because there may be ! 221: opportunities to combine the normalization with other ! 222: operations. ! 223: ! 224: * For equal-length sequences, use a value of 1 or -1, with -1 ! 225: being slightly preferred on machines with expensive jumps and ! 226: 1 preferred on other machines. ! 227: ! 228: * As a second choice, choose a value of `0x80000001' if ! 229: instructions exist that set both the sign and low-order bits ! 230: but do not define the others. ! 231: ! 232: * Otherwise, use a value of `0x80000000'. ! 233: ! 234: Many machines can produce both the value chosen for ! 235: `STORE_FLAG_VALUE' and its negation in the same number of ! 236: instructions. On those machines, you should also define a pattern ! 237: for those cases, e.g., one matching ! 238: ! 239: (set A (neg:M (ne:M B C))) ! 240: ! 241: Some machines can also perform `and' or `plus' operations on ! 242: condition code values with less instructions than the corresponding ! 243: `sCOND' insn followed by `and' or `plus'. On those machines, ! 244: define the appropriate patterns. Use the names `incscc' and ! 245: `decscc', respectively, for the the patterns which perform `plus' ! 246: or `minus' operations on condition code values. See `rs6000.md' ! 247: for some examples. The GNU Superoptizer can be used to find such ! 248: instruction sequences on other machines. ! 249: ! 250: You need not define `STORE_FLAG_VALUE' if the machine has no ! 251: store-flag instructions. ! 252: ! 253: `FLOAT_STORE_FLAG_VALUE' ! 254: A C expression that gives a non-zero floating point value that is ! 255: returned when comparison operators with floating-point results are ! 256: true. Define this macro on machine that have comparison ! 257: operations that return floating-point values. If there are no ! 258: such operations, do not define this macro. ! 259: ! 260: `Pmode' ! 261: An alias for the machine mode for pointers. Normally the ! 262: definition can be ! 263: ! 264: #define Pmode SImode ! 265: ! 266: `FUNCTION_MODE' ! 267: An alias for the machine mode used for memory references to ! 268: functions being called, in `call' RTL expressions. On most ! 269: machines this should be `QImode'. ! 270: ! 271: `INTEGRATE_THRESHOLD (DECL)' ! 272: A C expression for the maximum number of instructions above which ! 273: the function DECL should not be inlined. DECL is a ! 274: `FUNCTION_DECL' node. ! 275: ! 276: The default definition of this macro is 64 plus 8 times the number ! 277: of arguments that the function accepts. Some people think a larger ! 278: threshold should be used on RISC machines. ! 279: ! 280: `SCCS_DIRECTIVE' ! 281: Define this if the preprocessor should ignore `#sccs' directives ! 282: and print no error message. ! 283: ! 284: `NO_IMPLICIT_EXTERN_C' ! 285: Define this macro if the system header files support C++ as well ! 286: as C. This macro inhibits the usual method of using system header ! 287: files in C++, which is to pretend that the file's contents are ! 288: enclosed in `extern "C" {...}'. ! 289: ! 290: `HANDLE_PRAGMA (STREAM)' ! 291: Define this macro if you want to implement any pragmas. If ! 292: defined, it should be a C statement to be executed when `#pragma' ! 293: is seen. The argument STREAM is the stdio input stream from which ! 294: the source text can be read. ! 295: ! 296: It is generally a bad idea to implement new uses of `#pragma'. The ! 297: only reason to define this macro is for compatibility with other ! 298: compilers that do support `#pragma' for the sake of any user ! 299: programs which already use it. ! 300: ! 301: `VALID_MACHINE_ATTRIBUTE (TYPE, ATTRIBUTES, IDENTIFIER)' ! 302: Define this macro if you want to support machine specific ! 303: attributes for types. If defined, it should be a C statement ! 304: whose value is nonzero if IDENTIFIER is an attribute that is valid ! 305: for TYPE. The attributes in ATTRIBUTES have previously been ! 306: assigned to TYPE. ! 307: ! 308: `COMP_TYPE_ATTRIBUTES (TYPE1, TYPE2)' ! 309: Define this macro if type attributes must be checked for ! 310: compatibility. If defined, it should be a C statement that ! 311: returns zero if the attributes on TYPE1 and TYPE2 are ! 312: incompatible, one if they are compatible, and two if they are ! 313: nearly compatible (which causes a warning to be generated). ! 314: ! 315: `SET_DEFAULT_TYPE_ATTRIBUTES (TYPE)' ! 316: Define this macro if you want to give the newly defined TYPE some ! 317: default attributes. ! 318: ! 319: `DOLLARS_IN_IDENTIFIERS' ! 320: Define this macro to control use of the character `$' in identifier ! 321: names. The value should be 0, 1, or 2. 0 means `$' is not allowed ! 322: by default; 1 means it is allowed by default if `-traditional' is ! 323: used; 2 means it is allowed by default provided `-ansi' is not ! 324: used. 1 is the default; there is no need to define this macro in ! 325: that case. ! 326: ! 327: `NO_DOLLAR_IN_LABEL' ! 328: Define this macro if the assembler does not accept the character ! 329: `$' in label names. By default constructors and destructors in ! 330: G++ have `$' in the identifiers. If this macro is defined, `.' is ! 331: used instead. ! 332: ! 333: `NO_DOT_IN_LABEL' ! 334: Define this macro if the assembler does not accept the character ! 335: `.' in label names. By default constructors and destructors in G++ ! 336: have names that use `.'. If this macro is defined, these names ! 337: are rewritten to avoid `.'. ! 338: ! 339: `DEFAULT_MAIN_RETURN' ! 340: Define this macro if the target system expects every program's ! 341: `main' function to return a standard "success" value by default ! 342: (if no other value is explicitly returned). ! 343: ! 344: The definition should be a C statement (sans semicolon) to ! 345: generate the appropriate rtl instructions. It is used only when ! 346: compiling the end of `main'. ! 347: ! 348: `HAVE_ATEXIT' ! 349: Define this if the target system supports the function `atexit' ! 350: from the ANSI C standard. If this is not defined, and ! 351: `INIT_SECTION_ASM_OP' is not defined, a default `exit' function ! 352: will be provided to support C++. ! 353: ! 354: `EXIT_BODY' ! 355: Define this if your `exit' function needs to do something besides ! 356: calling an external function `_cleanup' before terminating with ! 357: `_exit'. The `EXIT_BODY' macro is only needed if netiher ! 358: `HAVE_ATEXIT' nor `INIT_SECTION_ASM_OP' are defined. ! 359: ! 360: `INSN_SETS_ARE_DELAYED (INSN)' ! 361: Define this macro as a C expression that is nonzero if it is safe ! 362: for the delay slot scheduler to place instructions in the delay ! 363: slot of INSN, even if they appear to use a resource set or ! 364: clobbered in INSN. INSN is always a `jump_insn' or an `insn'; GNU ! 365: CC knows that every `call_insn' has this behavior. On machines ! 366: where some `insn' or `jump_insn' is really a function call and ! 367: hence has this behavior, you should define this macro. ! 368: ! 369: You need not define this macro if it would always return zero. ! 370: ! 371: `INSN_REFERENCES_ARE_DELAYED (INSN)' ! 372: Define this macro as a C expression that is nonzero if it is safe ! 373: for the delay slot scheduler to place instructions in the delay ! 374: slot of INSN, even if they appear to set or clobber a resource ! 375: referenced in INSN. INSN is always a `jump_insn' or an `insn'. ! 376: On machines where some `insn' or `jump_insn' is really a function ! 377: call and its operands are registers whose use is actually in the ! 378: subroutine it calls, you should define this macro. Doing so ! 379: allows the delay slot scheduler to move instructions which copy ! 380: arguments into the argument registers into the delay slot of INSN. ! 381: ! 382: You need not define this macro if it would always return zero. ! 383: ! 384: `MACHINE_DEPENDENT_REORG (INSN)' ! 385: In rare cases, correct code generation requires extra machine ! 386: dependent processing between the second jump optimization pass and ! 387: delayed branch scheduling. On those machines, define this macro ! 388: as a C statement to act on the code starting at INSN. 1.1 root 389: 1.1.1.2 ! root 390: ! 391: File: gcc.info, Node: Config, Next: Index, Prev: Target Macros, Up: Top ! 392: ! 393: The Configuration File ! 394: ********************** ! 395: ! 396: The configuration file `xm-MACHINE.h' contains macro definitions ! 397: that describe the machine and system on which the compiler is running, ! 398: unlike the definitions in `MACHINE.h', which describe the machine for ! 399: which the compiler is producing output. Most of the values in ! 400: `xm-MACHINE.h' are actually the same on all machines that GNU CC runs ! 401: on, so large parts of all configuration files are identical. But there ! 402: are some macros that vary: ! 403: ! 404: `USG' ! 405: Define this macro if the host system is System V. ! 406: ! 407: `VMS' ! 408: Define this macro if the host system is VMS. ! 409: ! 410: `FAILURE_EXIT_CODE' ! 411: A C expression for the status code to be returned when the compiler ! 412: exits after serious errors. ! 413: ! 414: `SUCCESS_EXIT_CODE' ! 415: A C expression for the status code to be returned when the compiler ! 416: exits without serious errors. ! 417: ! 418: `HOST_WORDS_BIG_ENDIAN' ! 419: Defined if the host machine stores words of multi-word values in ! 420: big-endian order. (GNU CC does not depend on the host byte ! 421: ordering within a word.) ! 422: ! 423: `HOST_FLOAT_WORDS_BIG_ENDIAN' ! 424: Define this macro to be 1 if the host machine stores `DFmode', ! 425: `XFmode' or `TFmode' floating point numbers in memory with the ! 426: word containing the sign bit at the lowest address; otherwise, ! 427: define it to be zero. ! 428: ! 429: This macro need not be defined if the ordering is the same as for ! 430: multi-word integers. ! 431: ! 432: `HOST_FLOAT_FORMAT' ! 433: A numeric code distinguishing the floating point format for the ! 434: host machine. See `TARGET_FLOAT_FORMAT' in *Note Storage Layout:: ! 435: for the alternatives and default. ! 436: ! 437: `HOST_BITS_PER_CHAR' ! 438: A C expression for the number of bits in `char' on the host ! 439: machine. ! 440: ! 441: `HOST_BITS_PER_SHORT' ! 442: A C expression for the number of bits in `short' on the host ! 443: machine. ! 444: ! 445: `HOST_BITS_PER_INT' ! 446: A C expression for the number of bits in `int' on the host machine. ! 447: ! 448: `HOST_BITS_PER_LONG' ! 449: A C expression for the number of bits in `long' on the host ! 450: machine. ! 451: ! 452: `ONLY_INT_FIELDS' ! 453: Define this macro to indicate that the host compiler only supports ! 454: `int' bit fields, rather than other integral types, including ! 455: `enum', as do most C compilers. ! 456: ! 457: `EXECUTABLE_SUFFIX' ! 458: Define this macro if the host system uses a naming convention for ! 459: executable files that involves a common suffix (such as, in some ! 460: systems, `.exe') that must be mentioned explicitly when you run ! 461: the program. ! 462: ! 463: `OBSTACK_CHUNK_SIZE' ! 464: A C expression for the size of ordinary obstack chunks. If you ! 465: don't define this, a usually-reasonable default is used. ! 466: ! 467: `OBSTACK_CHUNK_ALLOC' ! 468: The function used to allocate obstack chunks. If you don't define ! 469: this, `xmalloc' is used. ! 470: ! 471: `OBSTACK_CHUNK_FREE' ! 472: The function used to free obstack chunks. If you don't define ! 473: this, `free' is used. ! 474: ! 475: `USE_C_ALLOCA' ! 476: Define this macro to indicate that the compiler is running with the ! 477: `alloca' implemented in C. This version of `alloca' can be found ! 478: in the file `alloca.c'; to use it, you must also alter the ! 479: `Makefile' variable `ALLOCA'. (This is done automatically for the ! 480: systems on which we know it is needed.) ! 481: ! 482: If you do define this macro, you should probably do it as follows: ! 483: ! 484: #ifndef __GNUC__ ! 485: #define USE_C_ALLOCA ! 486: #else ! 487: #define alloca __builtin_alloca ! 488: #endif ! 489: ! 490: so that when the compiler is compiled with GNU CC it uses the more ! 491: efficient built-in `alloca' function. ! 492: ! 493: `FUNCTION_CONVERSION_BUG' ! 494: Define this macro to indicate that the host compiler does not ! 495: properly handle converting a function value to a ! 496: pointer-to-function when it is used in an expression. ! 497: ! 498: `HAVE_VPRINTF' ! 499: Define this if the library function `vprintf' is available on your ! 500: system. ! 501: ! 502: `MULTIBYTE_CHARS' ! 503: Define this macro to enable support for multibyte characters in the ! 504: input to GNU CC. This requires that the host system support the ! 505: ANSI C library functions for converting multibyte characters to ! 506: wide characters. ! 507: ! 508: `HAVE_PUTENV' ! 509: Define this if the library function `putenv' is available on your ! 510: system. ! 511: ! 512: `NO_SYS_SIGLIST' ! 513: Define this if your system *does not* provide the variable ! 514: `sys_siglist'. ! 515: ! 516: `DONT_DECLARE_SYS_SIGLIST' ! 517: Define this if your system has the variable `sys_siglist', and ! 518: there is already a declaration of it in the system header files. ! 519: ! 520: `USE_PROTOTYPES' ! 521: Define this to be 1 if you know that the host compiler supports ! 522: prototypes, even if it doesn't define __STDC__, or define it to be ! 523: 0 if you do not want any prototypes used in compiling GNU CC. If ! 524: `USE_PROTOTYPES' is not defined, it will be determined ! 525: automatically whether your compiler supports prototypes by ! 526: checking if `__STDC__' is defined. ! 527: ! 528: `NO_MD_PROTOTYPES' ! 529: Define this if you wish suppression of prototypes generated from ! 530: the machine description file, but to use other prototypes within ! 531: GNU CC. If `USE_PROTOTYPES' is defined to be 0, or the host ! 532: compiler does not support prototypes, this macro has no effect. ! 533: ! 534: `MD_CALL_PROTOTYPES' ! 535: Define this if you wish to generate prototypes for the `gen_call' ! 536: or `gen_call_value' functions generated from the machine ! 537: description file. If `USE_PROTOTYPES' is defined to be 0, or the ! 538: host compiler does not support prototypes, or `NO_MD_PROTOTYPES' ! 539: is defined, this macro has no effect. As soon as all of the ! 540: machine descriptions are modified to have the appropriate number ! 541: of arguments, this macro will be removed. ! 542: ! 543: Some systems do provide this variable, but with a different name ! 544: such as `_sys_siglist'. On these systems, you can define ! 545: `sys_siglist' as a macro which expands into the name actually ! 546: provided. ! 547: ! 548: `NO_STAB_H' ! 549: Define this if your system does not have the include file ! 550: `stab.h'. If `USG' is defined, `NO_STAB_H' is assumed. ! 551: ! 552: `PATH_SEPARATOR' ! 553: Define this macro to be a C character constant representing the ! 554: character used to separate components in paths. The default value ! 555: is. the colon character ! 556: ! 557: `DIR_SEPARATOR' ! 558: If your system uses some character other than slash to separate ! 559: directory names within a file specification, define this macro to ! 560: be a C character constant specifying that character. When GNU CC ! 561: displays file names, the character you specify will be used. GNU ! 562: CC will test for both slash and the character you specify when ! 563: parsing filenames. ! 564: ! 565: In addition, configuration files for system V define `bcopy', ! 566: `bzero' and `bcmp' as aliases. Some files define `alloca' as a macro ! 567: when compiled with GNU CC, in order to take advantage of the benefit of ! 568: GNU CC's built-in `alloca'. 1.1 root 569:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.