* complaints.c: New file, code moved from utils.c.
[binutils-gdb.git] / gdb / defs.h
1 /* Basic, host-specific, and target-specific definitions for GDB.
2 Copyright (C) 1986, 1989, 1991 Free Software Foundation, Inc.
3
4 This file is part of GDB.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20 #if !defined (DEFS_H)
21 #define DEFS_H 1
22
23 #include <stdio.h>
24
25 /* First include ansidecl.h so we can use the various macro definitions
26 here and in all subsequent file inclusions. */
27
28 #include "ansidecl.h"
29
30 /* An address in the program being debugged. Host byte order. */
31 typedef unsigned int CORE_ADDR;
32
33 #define min(a, b) ((a) < (b) ? (a) : (b))
34 #define max(a, b) ((a) > (b) ? (a) : (b))
35
36 /* The character C++ uses to build identifiers that must be unique from
37 the program's identifiers (such as $this and $$vptr). */
38 #define CPLUS_MARKER '$' /* May be overridden to '.' for SysV */
39
40 #include <errno.h> /* System call error return status */
41
42 extern int quit_flag;
43 extern int immediate_quit;
44 extern int sevenbit_strings;
45
46 extern void
47 quit PARAMS ((void));
48
49 #define QUIT { if (quit_flag) quit (); }
50
51 /* Command classes are top-level categories into which commands are broken
52 down for "help" purposes.
53 Notes on classes: class_alias is for alias commands which are not
54 abbreviations of the original command. class-pseudo is for commands
55 which are not really commands nor help topics ("stop"). */
56
57 enum command_class
58 {
59 /* Special args to help_list */
60 all_classes = -2, all_commands = -1,
61 /* Classes of commands */
62 no_class = -1, class_run = 0, class_vars, class_stack,
63 class_files, class_support, class_info, class_breakpoint,
64 class_alias, class_obscure, class_user, class_maintenance,
65 class_pseudo
66 };
67
68 /* the cleanup list records things that have to be undone
69 if an error happens (descriptors to be closed, memory to be freed, etc.)
70 Each link in the chain records a function to call and an
71 argument to give it.
72
73 Use make_cleanup to add an element to the cleanup chain.
74 Use do_cleanups to do all cleanup actions back to a given
75 point in the chain. Use discard_cleanups to remove cleanups
76 from the chain back to a given point, not doing them. */
77
78 struct cleanup
79 {
80 struct cleanup *next;
81 void (*function) PARAMS ((PTR));
82 PTR arg;
83 };
84
85 /* From blockframe.c */
86
87 extern int
88 inside_entry_func PARAMS ((CORE_ADDR));
89
90 extern int
91 inside_entry_file PARAMS ((CORE_ADDR addr));
92
93 extern int
94 inside_main_func PARAMS ((CORE_ADDR pc));
95
96 /* From cplus-dem.c */
97
98 extern char *
99 cplus_demangle PARAMS ((const char *, int));
100
101 extern char *
102 cplus_mangle_opname PARAMS ((char *, int));
103
104 /* From libmmalloc.a (memory mapped malloc library) */
105
106 extern PTR
107 mmalloc_attach PARAMS ((int, PTR));
108
109 extern PTR
110 mmalloc_detach PARAMS ((PTR));
111
112 extern PTR
113 mmalloc PARAMS ((PTR, long));
114
115 extern PTR
116 mrealloc PARAMS ((PTR, PTR, long));
117
118 extern void
119 mfree PARAMS ((PTR, PTR));
120
121 extern int
122 mmalloc_setkey PARAMS ((PTR, int, PTR));
123
124 extern PTR
125 mmalloc_getkey PARAMS ((PTR, int));
126
127 /* From utils.c */
128
129 extern char *
130 demangle_and_match PARAMS ((const char *, const char *, int));
131
132 extern int
133 strcmp_iw PARAMS ((const char *, const char *));
134
135 extern char *
136 safe_strerror PARAMS ((int));
137
138 extern char *
139 safe_strsignal PARAMS ((int));
140
141 extern void
142 init_malloc PARAMS ((PTR));
143
144 extern void
145 request_quit PARAMS ((int));
146
147 extern void
148 do_cleanups PARAMS ((struct cleanup *));
149
150 extern void
151 discard_cleanups PARAMS ((struct cleanup *));
152
153 /* The bare make_cleanup function is one of those rare beasts that
154 takes almost any type of function as the first arg and anything that
155 will fit in a "void *" as the second arg.
156
157 Should be, once all calls and called-functions are cleaned up:
158 extern struct cleanup *
159 make_cleanup PARAMS ((void (*function) (PTR), PTR));
160
161 Until then, lint and/or various type-checking compiler options will
162 complain about make_cleanup calls. It'd be wrong to just cast things,
163 since the type actually passed when the function is called would be
164 wrong. */
165
166 extern struct cleanup *
167 make_cleanup ();
168
169 extern struct cleanup *
170 save_cleanups PARAMS ((void));
171
172 extern void
173 restore_cleanups PARAMS ((struct cleanup *));
174
175 extern void
176 free_current_contents PARAMS ((char **));
177
178 extern void
179 null_cleanup PARAMS ((char **));
180
181 extern int
182 myread PARAMS ((int, char *, int));
183
184 extern int
185 query ();
186
187 extern void
188 begin_line PARAMS ((void));
189
190 extern void
191 wrap_here PARAMS ((char *));
192
193 extern void
194 reinitialize_more_filter PARAMS ((void));
195
196 extern int
197 print_insn PARAMS ((CORE_ADDR, FILE *));
198
199 extern void
200 fputs_filtered PARAMS ((const char *, FILE *));
201
202 extern void
203 puts_filtered PARAMS ((char *));
204
205 extern void
206 vprintf_filtered ();
207
208 extern void
209 vfprintf_filtered ();
210
211 extern void
212 fprintf_filtered ();
213
214 extern void
215 fprintfi_filtered ();
216
217 extern void
218 printf_filtered ();
219
220 extern void
221 printfi_filtered ();
222
223 extern void
224 print_spaces PARAMS ((int, FILE *));
225
226 extern void
227 print_spaces_filtered PARAMS ((int, FILE *));
228
229 extern char *
230 n_spaces PARAMS ((int));
231
232 extern void
233 gdb_printchar PARAMS ((int, FILE *, int));
234
235 extern char *
236 strdup_demangled PARAMS ((const char *));
237
238 extern void
239 fprint_symbol PARAMS ((FILE *, char *));
240
241 extern void
242 fputs_demangled PARAMS ((char *, FILE *, int));
243
244 extern void
245 perror_with_name PARAMS ((char *));
246
247 extern void
248 print_sys_errmsg PARAMS ((char *, int));
249
250 /* From regex.c */
251
252 extern char *
253 re_comp PARAMS ((char *));
254
255 /* From symfile.c */
256
257 extern void
258 symbol_file_command PARAMS ((char *, int));
259
260 /* From main.c */
261
262 extern char *
263 skip_quoted PARAMS ((char *));
264
265 extern char *
266 gdb_readline PARAMS ((char *));
267
268 extern char *
269 command_line_input PARAMS ((char *, int));
270
271 extern void
272 print_prompt PARAMS ((void));
273
274 extern int
275 batch_mode PARAMS ((void));
276
277 extern int
278 input_from_terminal_p PARAMS ((void));
279
280 extern int
281 catch_errors PARAMS ((int (*) (char *), char *, char *));
282
283 /* From printcmd.c */
284
285 extern void
286 set_next_address PARAMS ((CORE_ADDR));
287
288 extern void
289 print_address_symbolic PARAMS ((CORE_ADDR, FILE *, int, char *));
290
291 extern void
292 print_address PARAMS ((CORE_ADDR, FILE *));
293
294 /* From source.c */
295
296 extern int
297 openp PARAMS ((char *, int, char *, int, int, char **));
298
299 extern void
300 mod_path PARAMS ((char *, char **));
301
302 extern void
303 directory_command PARAMS ((char *, int));
304
305 extern void
306 init_source_path PARAMS ((void));
307
308 /* From findvar.c */
309
310 extern int
311 read_relative_register_raw_bytes PARAMS ((int, char *));
312
313 /* From readline (but not in any readline .h files). */
314
315 extern char *
316 tilde_expand PARAMS ((char *));
317
318 /* Structure for saved commands lines
319 (for breakpoints, defined commands, etc). */
320
321 struct command_line
322 {
323 struct command_line *next;
324 char *line;
325 };
326
327 extern struct command_line *
328 read_command_lines PARAMS ((void));
329
330 extern void
331 free_command_lines PARAMS ((struct command_line **));
332
333 /* String containing the current directory (what getwd would return). */
334
335 extern char *current_directory;
336
337 /* Default radixes for input and output. Only some values supported. */
338 extern unsigned input_radix;
339 extern unsigned output_radix;
340
341 /* Baud rate specified for communication with serial target systems. */
342 extern char *baud_rate;
343
344 /* Languages represented in the symbol table and elsewhere.
345 This should probably be in language.h, but since enum's can't
346 be forward declared to satisfy opaque references before their
347 actual definition, needs to be here. */
348
349 enum language
350 {
351 language_unknown, /* Language not known */
352 language_auto, /* Placeholder for automatic setting */
353 language_c, /* C */
354 language_cplus, /* C++ */
355 /* start-sanitize-chill */
356 language_chill, /* Chill */
357 /* end-sanitize-chill */
358 language_m2 /* Modula-2 */
359 };
360
361 \f
362 /* Host machine definition. This will be a symlink to one of the
363 xm-*.h files, built by the `configure' script. */
364
365 #include "xm.h"
366
367 /* Native machine support. This will be a symlink to one of the
368 nm-*.h files, built by the `configure' script. */
369
370 #include "nm.h"
371
372 /* If the xm.h file did not define the mode string used to open the
373 files, assume that binary files are opened the same way as text
374 files */
375 #ifndef FOPEN_RB
376 #include "fopen-same.h"
377 #endif
378
379 /*
380 * Allow things in gdb to be declared "const". If compiling ANSI, it
381 * just works. If compiling with gcc but non-ansi, redefine to __const__.
382 * If non-ansi, non-gcc, then eliminate "const" entirely, making those
383 * objects be read-write rather than read-only.
384 */
385
386 #ifndef const
387 #ifndef __STDC__
388 # ifdef __GNUC__
389 # define const __const__
390 # else
391 # define const /*nothing*/
392 # endif /* GNUC */
393 #endif /* STDC */
394 #endif /* const */
395
396 #ifndef volatile
397 #ifndef __STDC__
398 # ifdef __GNUC__
399 # define volatile __volatile__
400 # else
401 # define volatile /*nothing*/
402 # endif /* GNUC */
403 #endif /* STDC */
404 #endif /* volatile */
405
406 /* Some compilers (many AT&T SVR4 compilers for instance), do not accept
407 declarations of functions that never return (exit for instance) as
408 "volatile void". For such compilers "NORETURN" can be defined away
409 to keep them happy */
410
411 #ifndef NORETURN
412 # ifdef __lucid
413 # define NORETURN /*nothing*/
414 # else
415 # define NORETURN volatile
416 # endif
417 #endif
418
419 /* Defaults for system-wide constants (if not defined by xm.h, we fake it). */
420
421 #if !defined (UINT_MAX)
422 #define UINT_MAX 0xffffffff
423 #endif
424
425 #if !defined (LONG_MAX)
426 #define LONG_MAX 0x7fffffff
427 #endif
428
429 #if !defined (INT_MAX)
430 #define INT_MAX 0x7fffffff
431 #endif
432
433 #if !defined (INT_MIN)
434 /* Two's complement, 32 bit. */
435 #define INT_MIN -0x80000000
436 #endif
437
438 /* Number of bits in a char or unsigned char for the target machine.
439 Just like CHAR_BIT in <limits.h> but describes the target machine. */
440 #if !defined (TARGET_CHAR_BIT)
441 #define TARGET_CHAR_BIT 8
442 #endif
443
444 /* Number of bits in a short or unsigned short for the target machine. */
445 #if !defined (TARGET_SHORT_BIT)
446 #define TARGET_SHORT_BIT (sizeof (short) * TARGET_CHAR_BIT)
447 #endif
448
449 /* Number of bits in an int or unsigned int for the target machine. */
450 #if !defined (TARGET_INT_BIT)
451 #define TARGET_INT_BIT (sizeof (int) * TARGET_CHAR_BIT)
452 #endif
453
454 /* Number of bits in a long or unsigned long for the target machine. */
455 #if !defined (TARGET_LONG_BIT)
456 #define TARGET_LONG_BIT (sizeof (long) * TARGET_CHAR_BIT)
457 #endif
458
459 /* Number of bits in a long long or unsigned long long for the target machine. */
460 #if !defined (TARGET_LONG_LONG_BIT)
461 #define TARGET_LONG_LONG_BIT (2 * TARGET_LONG_BIT)
462 #endif
463
464 /* Number of bits in a float for the target machine. */
465 #if !defined (TARGET_FLOAT_BIT)
466 #define TARGET_FLOAT_BIT (sizeof (float) * TARGET_CHAR_BIT)
467 #endif
468
469 /* Number of bits in a double for the target machine. */
470 #if !defined (TARGET_DOUBLE_BIT)
471 #define TARGET_DOUBLE_BIT (sizeof (double) * TARGET_CHAR_BIT)
472 #endif
473
474 /* Number of bits in a long double for the target machine. */
475 #if !defined (TARGET_LONG_DOUBLE_BIT)
476 #define TARGET_LONG_DOUBLE_BIT (2 * TARGET_DOUBLE_BIT)
477 #endif
478
479 /* Number of bits in a "complex" for the target machine. */
480 #if !defined (TARGET_COMPLEX_BIT)
481 #define TARGET_COMPLEX_BIT (2 * TARGET_FLOAT_BIT)
482 #endif
483
484 /* Number of bits in a "double complex" for the target machine. */
485 #if !defined (TARGET_DOUBLE_COMPLEX_BIT)
486 #define TARGET_DOUBLE_COMPLEX_BIT (2 * TARGET_DOUBLE_BIT)
487 #endif
488
489 /* Number of bits in a pointer for the target machine */
490 #if !defined (TARGET_PTR_BIT)
491 #define TARGET_PTR_BIT TARGET_INT_BIT
492 #endif
493
494 /* Convert a LONGEST to an int. This is used in contexts (e.g. number
495 of arguments to a function, number in a value history, register
496 number, etc.) where the value must not be larger than can fit
497 in an int. */
498 #if !defined (longest_to_int)
499 #if defined (LONG_LONG)
500 #define longest_to_int(x) (((x) > INT_MAX || (x) < INT_MIN) \
501 ? (error ("Value out of range."),0) : (int) (x))
502 #else /* No LONG_LONG. */
503 /* Assume sizeof (int) == sizeof (long). */
504 #define longest_to_int(x) ((int) (x))
505 #endif /* No LONG_LONG. */
506 #endif /* No longest_to_int. */
507
508 /* This should not be a typedef, because "unsigned LONGEST" needs
509 to work. LONG_LONG is defined if the host has "long long". */
510
511 #ifndef LONGEST
512 # ifdef LONG_LONG
513 # define LONGEST long long
514 # else
515 # define LONGEST long
516 # endif
517 #endif
518
519 /* Assorted functions we can declare, now that const and volatile are
520 defined. */
521
522 extern char *
523 savestring PARAMS ((const char *, int));
524
525 extern char *
526 msavestring PARAMS ((void *, const char *, int));
527
528 extern char *
529 strsave PARAMS ((const char *));
530
531 extern char *
532 mstrsave PARAMS ((void *, const char *));
533
534 extern char *
535 concat PARAMS ((char *, ...));
536
537 extern PTR
538 xmalloc PARAMS ((long));
539
540 extern PTR
541 xrealloc PARAMS ((PTR, long));
542
543 extern PTR
544 xmmalloc PARAMS ((PTR, long));
545
546 extern PTR
547 xmrealloc PARAMS ((PTR, PTR, long));
548
549 extern PTR
550 mmalloc PARAMS ((PTR, long));
551
552 extern PTR
553 mrealloc PARAMS ((PTR, PTR, long));
554
555 extern void
556 mfree PARAMS ((PTR, PTR));
557
558 extern int
559 mmcheck PARAMS ((PTR, void (*) (void)));
560
561 extern int
562 mmtrace PARAMS ((void));
563
564 extern int
565 parse_escape PARAMS ((char **));
566
567 extern const char * const reg_names[];
568
569 extern NORETURN void /* Does not return to the caller. */
570 error ();
571
572 extern NORETURN void /* Does not return to the caller. */
573 fatal ();
574
575 extern NORETURN void /* Not specified as volatile in ... */
576 exit PARAMS ((int)); /* 4.10.4.3 */
577
578 extern NORETURN void /* Does not return to the caller. */
579 nomem PARAMS ((long));
580
581 extern NORETURN void /* Does not return to the caller. */
582 return_to_top_level PARAMS ((void));
583
584 extern void
585 warning_setup PARAMS ((void));
586
587 extern void
588 warning ();
589
590 /* Global functions from other, non-gdb GNU thingies (libiberty for
591 instance) */
592
593 extern char *
594 basename PARAMS ((char *));
595
596 extern char *
597 getenv PARAMS ((const char *));
598
599 extern char **
600 buildargv PARAMS ((char *));
601
602 extern void
603 freeargv PARAMS ((char **));
604
605 extern char *
606 strerrno PARAMS ((int));
607
608 extern char *
609 strsigno PARAMS ((int));
610
611 extern int
612 errno_max PARAMS ((void));
613
614 extern int
615 signo_max PARAMS ((void));
616
617 extern int
618 strtoerrno PARAMS ((char *));
619
620 extern int
621 strtosigno PARAMS ((char *));
622
623 extern char *
624 strsignal PARAMS ((int));
625
626 /* From other system libraries */
627
628 #ifndef PSIGNAL_IN_SIGNAL_H
629 extern void
630 psignal PARAMS ((unsigned, char *));
631 #endif
632
633 /* For now, we can't include <stdlib.h> because it conflicts with
634 "../include/getopt.h". (FIXME)
635
636 However, if a function is defined in the ANSI C standard and a prototype
637 for that function is defined and visible in any header file in an ANSI
638 conforming environment, then that prototype must match the definition in
639 the ANSI standard. So we can just duplicate them here without conflict,
640 since they must be the same in all conforming ANSI environments. If
641 these cause problems, then the environment is not ANSI conformant. */
642
643 #ifdef __STDC__
644 #include <stddef.h>
645 #endif
646
647 extern int
648 fclose PARAMS ((FILE *stream)); /* 4.9.5.1 */
649
650 extern void
651 perror PARAMS ((const char *)); /* 4.9.10.4 */
652
653 extern double
654 atof PARAMS ((const char *nptr)); /* 4.10.1.1 */
655
656 extern int
657 atoi PARAMS ((const char *)); /* 4.10.1.2 */
658
659 #ifndef MALLOC_INCOMPATIBLE
660
661 extern PTR
662 malloc PARAMS ((size_t size)); /* 4.10.3.3 */
663
664 extern PTR
665 realloc PARAMS ((void *ptr, size_t size)); /* 4.10.3.4 */
666
667 extern void
668 free PARAMS ((void *)); /* 4.10.3.2 */
669
670 #endif /* MALLOC_INCOMPATIBLE */
671
672 extern void
673 qsort PARAMS ((void *base, size_t nmemb, /* 4.10.5.2 */
674 size_t size,
675 int (*comp)(const void *, const void *)));
676
677 #ifndef MEM_FNS_DECLARED /* Some non-ANSI use void *, not char *. */
678 extern PTR
679 memcpy PARAMS ((void *, const void *, size_t)); /* 4.11.2.1 */
680 #endif
681
682 extern int
683 memcmp PARAMS ((const void *, const void *, size_t)); /* 4.11.4.1 */
684
685 extern char *
686 strchr PARAMS ((const char *, int)); /* 4.11.5.2 */
687
688 extern char *
689 strrchr PARAMS ((const char *, int)); /* 4.11.5.5 */
690
691 extern char *
692 strstr PARAMS ((const char *, const char *)); /* 4.11.5.7 */
693
694 extern char *
695 strtok PARAMS ((char *, const char *)); /* 4.11.5.8 */
696
697 #ifndef MEM_FNS_DECLARED /* Some non-ANSI use void *, not char *. */
698 extern PTR
699 memset PARAMS ((void *, int, size_t)); /* 4.11.6.1 */
700 #endif
701
702 extern char *
703 strerror PARAMS ((int)); /* 4.11.6.2 */
704
705 /* Various possibilities for alloca. */
706 #ifndef alloca
707 # ifdef __GNUC__
708 # define alloca __builtin_alloca
709 # else
710 # ifdef sparc
711 # include <alloca.h> /* NOTE: Doesn't declare alloca() */
712 # endif
713 # ifdef __STDC__
714 extern void *alloca (size_t);
715 # else /* __STDC__ */
716 extern char *alloca ();
717 # endif
718 # endif
719 #endif
720
721 /* TARGET_BYTE_ORDER and HOST_BYTE_ORDER must be defined to one of these. */
722
723 #if !defined (BIG_ENDIAN)
724 #define BIG_ENDIAN 4321
725 #endif
726
727 #if !defined (LITTLE_ENDIAN)
728 #define LITTLE_ENDIAN 1234
729 #endif
730
731 /* Target-system-dependent parameters for GDB.
732
733 The standard thing is to include defs.h. However, files that are
734 specific to a particular target can define TM_FILE_OVERRIDE before
735 including defs.h, then can include any particular tm-file they desire. */
736
737 /* Target machine definition. This will be a symlink to one of the
738 tm-*.h files, built by the `configure' script. */
739
740 #ifndef TM_FILE_OVERRIDE
741 #include "tm.h"
742 #endif
743
744 /* The bit byte-order has to do just with numbering of bits in
745 debugging symbols and such. Conceptually, it's quite separate
746 from byte/word byte order. */
747
748 #if !defined (BITS_BIG_ENDIAN)
749 #if TARGET_BYTE_ORDER == BIG_ENDIAN
750 #define BITS_BIG_ENDIAN 1
751 #endif /* Big endian. */
752
753 #if TARGET_BYTE_ORDER == LITTLE_ENDIAN
754 #define BITS_BIG_ENDIAN 0
755 #endif /* Little endian. */
756 #endif /* BITS_BIG_ENDIAN not defined. */
757
758 /* Swap LEN bytes at BUFFER between target and host byte-order. */
759 #if TARGET_BYTE_ORDER == HOST_BYTE_ORDER
760 #define SWAP_TARGET_AND_HOST(buffer,len)
761 #else /* Target and host byte order differ. */
762 #define SWAP_TARGET_AND_HOST(buffer,len) \
763 { \
764 char tmp; \
765 char *p = (char *)(buffer); \
766 char *q = ((char *)(buffer)) + len - 1; \
767 for (; p < q; p++, q--) \
768 { \
769 tmp = *q; \
770 *q = *p; \
771 *p = tmp; \
772 } \
773 }
774 #endif /* Target and host byte order differ. */
775
776 /* On some machines there are bits in addresses which are not really
777 part of the address, but are used by the kernel, the hardware, etc.
778 for special purposes. ADDR_BITS_REMOVE takes out any such bits
779 so we get a "real" address such as one would find in a symbol
780 table. ADDR_BITS_SET sets those bits the way the system wants
781 them. */
782 #if !defined (ADDR_BITS_REMOVE)
783 #define ADDR_BITS_REMOVE(addr) (addr)
784 #define ADDR_BITS_SET(addr) (addr)
785 #endif /* No ADDR_BITS_REMOVE. */
786
787 /* From valops.c */
788
789 extern CORE_ADDR
790 push_bytes PARAMS ((CORE_ADDR, char *, int));
791
792 /* In some modules, we don't have a definition of REGISTER_TYPE yet, so we
793 must avoid prototyping this function for now. FIXME. Should be:
794 extern CORE_ADDR
795 push_word PARAMS ((CORE_ADDR, REGISTER_TYPE));
796 */
797 extern CORE_ADDR
798 push_word ();
799
800 /* Some parts of gdb might be considered optional, in the sense that they
801 are not essential for being able to build a working, usable debugger
802 for a specific environment. For example, the maintenance commands
803 are there for the benefit of gdb maintainers. As another example,
804 some environments really don't need gdb's that are able to read N
805 different object file formats. In order to make it possible (but
806 not necessarily recommended) to build "stripped down" versions of
807 gdb, the following defines control selective compilation of those
808 parts of gdb which can be safely left out when necessary. Note that
809 the default is to include everything. */
810
811 #ifndef MAINTENANCE_CMDS
812 #define MAINTENANCE_CMDS 1
813 #endif
814
815 #endif /* !defined (DEFS_H) */