+2002-01-20 Andrew Cagney <ac131313@redhat.com>
+
+ * remote-sim.c (gdbsim_open): Simplify code testing the macro
+ TARGET_BYTE_ORDER_SELECTABLE_P. Assume the target is always
+ byte-order selectable.
+ * sparc-tdep.c (sparc_target_architecture_hook): Ditto.
+ * arch-utils.c: Ditto.
+ (set_endian): Ditto.
+ (set_endian_from_file): Ditto.
+ * gdbserver/low-sim.c (create_inferior): Ditto.
+ * gdbarch.sh: Ditto.
+ * gdbarch.h: Re-generate.
+ * config/powerpc/tm-ppc-eabi.h (TARGET_BYTE_ORDER_SELECTABLE_P):
+ * config/sparc/tm-sparclite.h (TARGET_BYTE_ORDER_SELECTABLE):
+ * config/sparc/tm-sparclet.h (TARGET_BYTE_ORDER_SELECTABLE):
+ * config/mcore/tm-mcore.h (TARGET_BYTE_ORDER_SELECTABLE_P):
+ * config/arm/tm-wince.h (TARGET_BYTE_ORDER_SELECTABLE_P):
+ * config/arm/tm-linux.h (TARGET_BYTE_ORDER_SELECTABLE_P):
+ * config/arc/tm-arc.h (TARGET_BYTE_ORDER_SELECTABLE):
+ * config/arm/tm-arm.h (TARGET_BYTE_ORDER_SELECTABLE_P): Delete
+ macro definition.
+ * config/mips/tm-wince.h: Remove #undef of macro
+ TARGET_BYTE_ORDER_SELECTABLE.
+ * config/sh/tm-wince.h: Ditto.
+
2002-01-20 Daniel Jacobowitz <drow@mvista.com>
* gdbtypes.h (struct cplus_struct_type): Add is_artificial to
\f
/* Functions to manipulate the endianness of the target. */
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-/* compat - Catch old targets that expect a selectable byte-order to
- default to BFD_ENDIAN_BIG */
-#ifndef TARGET_BYTE_ORDER_DEFAULT
-#define TARGET_BYTE_ORDER_DEFAULT BFD_ENDIAN_BIG
-#endif
-#endif
-#if !TARGET_BYTE_ORDER_SELECTABLE_P
-#ifndef TARGET_BYTE_ORDER_DEFAULT
-/* compat - Catch old non byte-order selectable targets that do not
- define TARGET_BYTE_ORDER_DEFAULT and instead expect
- TARGET_BYTE_ORDER to be used as the default. For targets that
- defined neither TARGET_BYTE_ORDER nor TARGET_BYTE_ORDER_DEFAULT the
- below will get a strange compiler warning. */
-#define TARGET_BYTE_ORDER_DEFAULT TARGET_BYTE_ORDER
-#endif
-#endif
#ifndef TARGET_BYTE_ORDER_DEFAULT
#define TARGET_BYTE_ORDER_DEFAULT BFD_ENDIAN_BIG /* arbitrary */
#endif
static void
set_endian (char *ignore_args, int from_tty, struct cmd_list_element *c)
{
- if (!TARGET_BYTE_ORDER_SELECTABLE_P)
- {
- printf_unfiltered ("Byte order is not selectable.");
- }
- else if (set_endian_string == endian_auto)
+ if (set_endian_string == endian_auto)
{
target_byte_order_auto = 1;
}
static void
set_endian_from_file (bfd *abfd)
{
+ int want;
if (GDB_MULTI_ARCH)
internal_error (__FILE__, __LINE__,
"set_endian_from_file: not for multi-arch");
- if (TARGET_BYTE_ORDER_SELECTABLE_P)
- {
- int want;
-
- if (bfd_big_endian (abfd))
- want = BFD_ENDIAN_BIG;
- else
- want = BFD_ENDIAN_LITTLE;
- if (TARGET_BYTE_ORDER_AUTO)
- target_byte_order = want;
- else if (TARGET_BYTE_ORDER != want)
- warning ("%s endian file does not match %s endian target.",
- want == BFD_ENDIAN_BIG ? "big" : "little",
- TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? "big" : "little");
- }
+ if (bfd_big_endian (abfd))
+ want = BFD_ENDIAN_BIG;
else
- {
- if (bfd_big_endian (abfd)
- ? TARGET_BYTE_ORDER != BFD_ENDIAN_BIG
- : TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
- warning ("%s endian file does not match %s endian target.",
- bfd_big_endian (abfd) ? "big" : "little",
- TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? "big" : "little");
- }
+ want = BFD_ENDIAN_LITTLE;
+ if (TARGET_BYTE_ORDER_AUTO)
+ target_byte_order = want;
+ else if (TARGET_BYTE_ORDER != want)
+ warning ("%s endian file does not match %s endian target.",
+ want == BFD_ENDIAN_BIG ? "big" : "little",
+ TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? "big" : "little");
}
/* Used by arc-tdep.c to set the default cpu type. */
#define DEFAULT_ARC_CPU_TYPE "base"
-/* Byte order is selectable. */
-#define TARGET_BYTE_ORDER_SELECTABLE
+/* We have IEEE floating point, if we have any float at all. */
+#define IEEE_FLOAT (1)
/* Offset from address of function to start of its code.
Zero on most machines. */
/* Target byte order on ARM defaults to selectable, and defaults to
little endian. */
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
#define TARGET_BYTE_ORDER_DEFAULT BFD_ENDIAN_LITTLE
/* IEEE format floating point. */
extern struct link_map_offsets *arm_linux_svr4_fetch_link_map_offsets (void);
#define SVR4_FETCH_LINK_MAP_OFFSETS() arm_linux_svr4_fetch_link_map_offsets ()
-/* Target byte order on ARM Linux is little endian and not selectable. */
-#undef TARGET_BYTE_ORDER_SELECTABLE_P
-#define TARGET_BYTE_ORDER_SELECTABLE_P 0
-
/* Under ARM Linux the traditional way of performing a breakpoint is to
execute a particular software interrupt, rather than use a particular
undefined instruction to provoke a trap. Upon exection of the software
void wince_software_single_step (unsigned int, int);
-/* Target byte order is little endian and not selectable on WinCE. */
-#undef TARGET_BYTE_ORDER_SELECTABLE_P
-#define TARGET_BYTE_ORDER_SELECTABLE_P 0
-
#endif /* TM_WINCE_H */
#define TARGET_VIRTUAL_FRAME_POINTER(PC, REGP, OFFP) \
mcore_virtual_frame_pointer ((PC), (REGP), (OFFP))
-/* MCore can be bi-endian. */
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-
/* For PE, gcc will tell us what th real type of
arguments are when it promotes arguments. */
#define BELIEVE_PCC_PROMOTION 1
#define SOFTWARE_SINGLE_STEP(sig, bp_p) wince_software_single_step (sig, bp_p)
void wince_software_single_step (unsigned int, int);
-#undef TARGET_BYTE_ORDER_SELECTABLE
#define TARGET_BYTE_ORDER BFD_ENDIAN_LITTLE
#endif /* TM_WINCE_H */
/* Say that we're using ELF, not XCOFF. */
#define ELF_OBJECT_FORMAT 1
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-
/* The value of symbols of type N_SO and N_FUN maybe null when
it shouldn't be. */
#define SOFUN_ADDRESS_MAYBE_MISSING
#undef SOFTWARE_SINGLE_STEP
#define SOFTWARE_SINGLE_STEP(sig, bp_p) wince_software_single_step (sig, bp_p)
void wince_software_single_step (unsigned int, int);
-#undef TARGET_BYTE_ORDER_SELECTABLE
#define TARGET_BYTE_ORDER BFD_ENDIAN_LITTLE
#endif /* TM_WINCE_H */
/* overrides of tm-sparc.h */
#undef TARGET_BYTE_ORDER
-#define TARGET_BYTE_ORDER_SELECTABLE
/* Sequence of bytes for breakpoint instruction (ta 1). */
#undef BREAKPOINT
/* overrides of tm-sparc.h */
#undef TARGET_BYTE_ORDER
-#define TARGET_BYTE_ORDER_SELECTABLE
/* Select the sparclite disassembler. Slightly different instruction set from
the V8 sparc. */
+2002-01-20 Andrew Cagney <ac131313@redhat.com>
+
+ * gdbint.texinfo (Target Architecture Definition): Delete
+ description of TARGET_BYTE_ORDER_SELECTABLE_P.
+
2002-01-20 Andrew Cagney <ac131313@redhat.com>
* gdbint.texinfo (Host Definition): Revise. xm-xyz.h and xyz.mh
@code{BFD_ENDIAN_BIG} or @code{BFD_ENDIAN_LITTLE}. This macro replaces
@code{TARGET_BYTE_ORDER} which is deprecated.
-@item TARGET_BYTE_ORDER_SELECTABLE_P
-@findex TARGET_BYTE_ORDER_SELECTABLE_P
-Non-zero if the target has both @code{BIG_ENDIAN} and
-@code{BFD_ENDIAN_LITTLE} variants. This macro replaces
-@code{TARGET_BYTE_ORDER_SELECTABLE} which is deprecated.
-
@item TARGET_CHAR_BIT
@findex TARGET_CHAR_BIT
Number of bits in a char; defaults to 8.
/* The target-system-dependent byte order is dynamic */
-/* TARGET_BYTE_ORDER_SELECTABLE_P determines if the target endianness
- is selectable at runtime. The user can use the ``set endian''
- command to change it. TARGET_BYTE_ORDER_AUTO is nonzero when
- target_byte_order should be auto-detected (from the program image
- say). */
-
-#if GDB_MULTI_ARCH
-/* Multi-arch GDB is always bi-endian. */
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-#endif
-
-#ifndef TARGET_BYTE_ORDER_SELECTABLE_P
-/* compat - Catch old targets that define TARGET_BYTE_ORDER_SLECTABLE
- when they should have defined TARGET_BYTE_ORDER_SELECTABLE_P 1 */
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-#else
-#define TARGET_BYTE_ORDER_SELECTABLE_P 0
-#endif
-#endif
-
extern int target_byte_order;
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-/* compat - Catch old targets that define TARGET_BYTE_ORDER_SELECTABLE
- and expect defs.h to re-define TARGET_BYTE_ORDER. */
-#undef TARGET_BYTE_ORDER
-#endif
#ifndef TARGET_BYTE_ORDER
#define TARGET_BYTE_ORDER (target_byte_order + 0)
#endif
/* The target-system-dependent byte order is dynamic */
-/* TARGET_BYTE_ORDER_SELECTABLE_P determines if the target endianness
- is selectable at runtime. The user can use the \`\`set endian''
- command to change it. TARGET_BYTE_ORDER_AUTO is nonzero when
- target_byte_order should be auto-detected (from the program image
- say). */
-
-#if GDB_MULTI_ARCH
-/* Multi-arch GDB is always bi-endian. */
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-#endif
-
-#ifndef TARGET_BYTE_ORDER_SELECTABLE_P
-/* compat - Catch old targets that define TARGET_BYTE_ORDER_SLECTABLE
- when they should have defined TARGET_BYTE_ORDER_SELECTABLE_P 1 */
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-#define TARGET_BYTE_ORDER_SELECTABLE_P 1
-#else
-#define TARGET_BYTE_ORDER_SELECTABLE_P 0
-#endif
-#endif
-
extern int target_byte_order;
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
-/* compat - Catch old targets that define TARGET_BYTE_ORDER_SELECTABLE
- and expect defs.h to re-define TARGET_BYTE_ORDER. */
-#undef TARGET_BYTE_ORDER
-#endif
#ifndef TARGET_BYTE_ORDER
#define TARGET_BYTE_ORDER (target_byte_order + 0)
#endif
{
bfd *abfd;
int pid = 0;
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
char **new_argv;
int nargs;
-#endif
abfd = bfd_openr (program, 0);
if (!abfd)
exit (1);
}
-#ifdef TARGET_BYTE_ORDER_SELECTABLE
/* Add "-E big" or "-E little" to the argument list depending on the
endianness of the program to be loaded. */
for (nargs = 0; argv[nargs] != NULL; nargs++) /* count the args */
new_argv[nargs + 1] = bfd_big_endian (abfd) ? "big" : "little";
new_argv[nargs + 2] = NULL;
argv = new_argv;
-#endif
/* Create an instance of the simulator. */
default_callback.init (&default_callback);
strcpy (arg_buf, "gdbsim"); /* 7 */
/* Specify the byte order for the target when it is both selectable
and explicitly specified by the user (not auto detected). */
- if (TARGET_BYTE_ORDER_SELECTABLE_P
- && !TARGET_BYTE_ORDER_AUTO)
+ if (!TARGET_BYTE_ORDER_AUTO)
{
switch (TARGET_BYTE_ORDER)
{
if (ap->mach == bfd_mach_sparc_sparclite_le)
{
- if (TARGET_BYTE_ORDER_SELECTABLE_P)
- {
- target_byte_order = BFD_ENDIAN_LITTLE;
- bi_endian = 1;
- }
- else
- {
- warning ("This GDB does not support little endian sparclite.");
- }
+ target_byte_order = BFD_ENDIAN_LITTLE;
+ bi_endian = 1;
}
else
bi_endian = 0;