summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/alphafbsd-tdep.c21
-rw-r--r--gdb/config/alpha/tm-fbsd.h8
3 files changed, 30 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 055a8288fe5..76bb45ce78f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,15 @@
2002-04-21 Jason Thorpe <thorpej@wasabisystems.com>
+ * alphafbsd-tdep.c: Update copyright years. Include
+ alpha-tdep.h.
+ (alphafbsd_use_struct_convention): Make static.
+ (alphafbsd_init_abi): New function.
+ (_initialize_alphafbsd_tdep): New function.
+ * config/alpha/tm-fbsd.h: Update copyright years.
+ (USE_STRUCT_CONVENTION): Remove.
+
+2002-04-21 Jason Thorpe <thorpej@wasabisystems.com>
+
* alpha-tdep.c (alpha_abi_handler): New structure to describe
an Alpha ABI variant.
(alpha_abi_handler_list): Declare.
diff --git a/gdb/alphafbsd-tdep.c b/gdb/alphafbsd-tdep.c
index e2d47491067..6a3f7e8fe99 100644
--- a/gdb/alphafbsd-tdep.c
+++ b/gdb/alphafbsd-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for FreeBSD/Alpha.
- Copyright 2001 Free Software Foundation, Inc.
+ Copyright 2001, 2002 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,7 +21,9 @@
#include "defs.h"
#include "value.h"
-int
+#include "alpha-tdep.h"
+
+static int
alphafbsd_use_struct_convention (int gcc_p, struct type *type)
{
enum type_code code;
@@ -51,3 +53,18 @@ alphafbsd_use_struct_convention (int gcc_p, struct type *type)
return 0;
}
+
+static void
+alphafbsd_init_abi (struct gdbarch_info info,
+ struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ set_gdbarch_use_struct_convention (gdbarch, alphafbsd_use_struct_convention);
+}
+
+void
+_initialize_alphafbsd_tdep (void)
+{
+ alpha_gdbarch_register_os_abi (ALPHA_ABI_FREEBSD, alphafbsd_init_abi);
+}
diff --git a/gdb/config/alpha/tm-fbsd.h b/gdb/config/alpha/tm-fbsd.h
index 00d3c27dc0b..55b3877018e 100644
--- a/gdb/config/alpha/tm-fbsd.h
+++ b/gdb/config/alpha/tm-fbsd.h
@@ -1,5 +1,5 @@
/* Target-dependent definitions for FreeBSD/Alpha.
- Copyright 2000, 2001 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GDB.
@@ -23,12 +23,6 @@
#include "alpha/tm-alpha.h"
-/* FreeBSD uses the old gcc convention for struct returns. */
-
-#undef USE_STRUCT_CONVENTION
-#define USE_STRUCT_CONVENTION(gcc_p, type) \
- alphafbsd_use_struct_convention (gcc_p, type)
-
/* FreeBSD doesn't mark the outermost frame. While some FreeBSD/Alpha
releases include (a minimal amount of) debugging info in its
startup code (crt1.o), the safest thing is to consider the user