language_auto, /* Placeholder for automatic setting */
language_c, /* C */
language_cplus, /* C++ */
+ language_java, /* Java */
language_chill, /* Chill */
language_fortran, /* Fortran */
language_m2, /* Modula-2 */
extern void do_cleanups PARAMS ((struct cleanup *));
extern void do_final_cleanups PARAMS ((struct cleanup *));
-extern void do_my_cleanups PARAMS ((struct cleanup *, struct cleanup *));
+extern void do_my_cleanups PARAMS ((struct cleanup **, struct cleanup *));
extern void discard_cleanups PARAMS ((struct cleanup *));
extern void discard_final_cleanups PARAMS ((struct cleanup *));
-extern void discard_my_cleanups PARAMS ((struct cleanup *, struct cleanup *));
+extern void discard_my_cleanups PARAMS ((struct cleanup **, struct cleanup *));
/* The bare make_cleanup function is one of those rare beasts that
takes almost any type of function as the first arg and anything that
extern struct cleanup *
make_final_cleanup PARAMS ((void (*function) (void *), void *));
extern struct cleanup *
-make_my_cleanup PARAMS ((struct cleanup *, void (*function) (void *), void *));
+make_my_cleanup PARAMS ((struct cleanup **, void (*function) (void *), void *));
extern struct cleanup *save_cleanups PARAMS ((void));
extern struct cleanup *save_final_cleanups PARAMS ((void));
-extern struct cleanup *save_my_cleanups PARAMS ((struct cleanup *));
+extern struct cleanup *save_my_cleanups PARAMS ((struct cleanup **));
extern void restore_cleanups PARAMS ((struct cleanup *));
extern void restore_final_cleanups PARAMS ((struct cleanup *));
-extern void restore_my_cleanups PARAMS ((struct cleanup *, struct cleanup *));
+extern void restore_my_cleanups PARAMS ((struct cleanup **, struct cleanup *));
extern void free_current_contents PARAMS ((char **));
extern void fprintf_symbol_filtered PARAMS ((GDB_FILE *, char *,
enum language, int));
-extern void perror_with_name PARAMS ((char *));
+extern NORETURN void perror_with_name PARAMS ((char *)) ATTR_NORETURN;
extern void print_sys_errmsg PARAMS ((char *, int));
#define LONG_MAX ((long)(ULONG_MAX >> 1)) /* 0x7FFFFFFF for 32-bits */
#endif
+#ifndef LONGEST
+
#ifdef BFD64
/* This is to make sure that LONGEST is at least as big as CORE_ADDR. */
#else /* No BFD64 */
-#ifndef LONGEST
# ifdef CC_HAS_LONG_LONG
# define LONGEST long long
# define ULONGEST unsigned long long
# else
-# define LONGEST long
-# define ULONGEST unsigned long
+/* BFD_HOST_64_BIT is defined for some hosts that don't have long long
+ (e.g. i386-windows) so try it. */
+# ifdef BFD_HOST_64_BIT
+# define LONGEST BFD_HOST_64_BIT
+# define ULONGEST BFD_HOST_U_64_BIT
+# else
+# define LONGEST long
+# define ULONGEST unsigned long
+# endif
# endif
-#endif
#endif /* No BFD64 */
+#endif /* ! LONGEST */
+
/* Convert a LONGEST to an int. This is used in contexts (e.g. number of
arguments to a function, number in a value history, register number, etc.)
where the value must not be larger than can fit in an int. */
extern char *warning_pre_print;
-extern NORETURN void error PARAMS((char *, ...)) ATTR_NORETURN;
+extern NORETURN void error PARAMS((const char *, ...)) ATTR_NORETURN;
extern void error_begin PARAMS ((void));
extern void warning_begin PARAMS ((void));
-extern void warning PARAMS ((char *, ...))
+extern void warning PARAMS ((const char *, ...))
ATTR_FORMAT(printf, 1, 2);
/* Global functions from other, non-gdb GNU thingies.
#undef TARGET_BYTE_ORDER
#define TARGET_BYTE_ORDER target_byte_order
extern int target_byte_order;
+/* Nonzero when target_byte_order auto-detected */
+extern int target_byte_order_auto;
#endif
extern void set_endian_from_file PARAMS ((bfd *));
+/* The target architecture can be set at run-time. */
+extern int target_architecture_auto;
+extern const bfd_arch_info_type *target_architecture;
+extern void set_architecture_from_file PARAMS ((bfd *));
+/* Notify target of a change to the selected architecture. Zero return
+ status indicates that the target did not like the change. */
+extern int (*target_architecture_hook) PARAMS ((const bfd_arch_info_type *ap));
+extern void set_architecture PARAMS ((char *arg, int from_tty));
+
/* Number of bits in a char or unsigned char for the target machine.
Just like CHAR_BIT in <limits.h> but describes the target machine. */
#if !defined (TARGET_CHAR_BIT)
struct cmd_list_element;
#endif
-extern void (*init_ui_hook) PARAMS ((void));
+extern void (*init_ui_hook) PARAMS ((char *argv0));
extern void (*command_loop_hook) PARAMS ((void));
extern void (*fputs_unfiltered_hook) PARAMS ((const char *linebuffer,
FILE *stream));