summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/usr.bin/binutils/Makefile.bsd-wrapper4
-rw-r--r--gnu/usr.bin/binutils/bfd/config.bfd6
-rw-r--r--gnu/usr.bin/binutils/gas/configure2
-rw-r--r--gnu/usr.bin/binutils/gas/configure.in2
-rw-r--r--gnu/usr.bin/binutils/gdb/config/sparc/nm-obsd.h58
-rw-r--r--gnu/usr.bin/binutils/ld/configure.tgt2
6 files changed, 64 insertions, 10 deletions
diff --git a/gnu/usr.bin/binutils/Makefile.bsd-wrapper b/gnu/usr.bin/binutils/Makefile.bsd-wrapper
index 15dc816b48e..6f0e004817b 100644
--- a/gnu/usr.bin/binutils/Makefile.bsd-wrapper
+++ b/gnu/usr.bin/binutils/Makefile.bsd-wrapper
@@ -1,6 +1,6 @@
-# $OpenBSD: Makefile.bsd-wrapper,v 1.47 2002/05/08 19:39:24 espie Exp $
+# $OpenBSD: Makefile.bsd-wrapper,v 1.48 2002/08/11 22:51:48 art Exp $
-NEW_BINUTILS=alpha mips powerpc hppa sparc64
+NEW_BINUTILS=alpha mips powerpc hppa sparc64 sparc
SUBDIRS= opcodes bfd
ALL_X11_MODULES=
diff --git a/gnu/usr.bin/binutils/bfd/config.bfd b/gnu/usr.bin/binutils/bfd/config.bfd
index 3044a08fc97..59cbe66a777 100644
--- a/gnu/usr.bin/binutils/bfd/config.bfd
+++ b/gnu/usr.bin/binutils/bfd/config.bfd
@@ -789,7 +789,7 @@ case "${targ}" in
targ_defvec=sparclynx_coff_vec
targ_selvecs=sparclynx_aout_vec
;;
- sparc-*-netbsdelf*)
+ sparc-*-netbsdelf* | sparc-*-openbsd*)
targ_defvec=bfd_elf32_sparc_vec
targ_selvecs=sparcnetbsd_vec
;;
@@ -798,10 +798,6 @@ case "${targ}" in
targ_selvecs=bfd_elf32_sparc_vec
targ_underscore=yes
;;
- sparc-*-openbsd*)
- targ_defvec=sparcnetbsd_vec
- targ_underscore=yes
- ;;
sparc-*-elf* | sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
targ_defvec=bfd_elf32_sparc_vec
targ_selvecs=sunos_big_vec
diff --git a/gnu/usr.bin/binutils/gas/configure b/gnu/usr.bin/binutils/gas/configure
index 0ecacf76d4a..6f31376108b 100644
--- a/gnu/usr.bin/binutils/gas/configure
+++ b/gnu/usr.bin/binutils/gas/configure
@@ -2537,7 +2537,7 @@ EOF
;;
sparc-*-openbsd*) em=nbsd
case ${cpu} in
- sparc) fmt=aout ;;
+ sparc) fmt=elf ;;
sparc64) fmt=elf ;;
esac
;;
diff --git a/gnu/usr.bin/binutils/gas/configure.in b/gnu/usr.bin/binutils/gas/configure.in
index e3c1c9062ed..03a245b6c6f 100644
--- a/gnu/usr.bin/binutils/gas/configure.in
+++ b/gnu/usr.bin/binutils/gas/configure.in
@@ -423,7 +423,7 @@ changequote([,])dnl
;;
sparc-*-openbsd*) em=nbsd
case ${cpu} in
- sparc) fmt=aout ;;
+ sparc) fmt=elf ;;
sparc64) fmt=elf ;;
esac
;;
diff --git a/gnu/usr.bin/binutils/gdb/config/sparc/nm-obsd.h b/gnu/usr.bin/binutils/gdb/config/sparc/nm-obsd.h
index 001ab3e5554..83db0062a3c 100644
--- a/gnu/usr.bin/binutils/gdb/config/sparc/nm-obsd.h
+++ b/gnu/usr.bin/binutils/gdb/config/sparc/nm-obsd.h
@@ -18,9 +18,67 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+#define SVR4_SHARED_LIBS
+
/* Get generic OpenBSD native definitions. */
#include "nm-obsd.h"
/* Before storing, read all the registers. (see inftarg.c) */
#define CHILD_PREPARE_TO_STORE() \
read_register_bytes (0, NULL, REGISTER_BYTES)
+
+#include "solib.h" /* Support for shared libraries. */
+
+/* The Net- and OpenBSD link.h structure definitions have different names
+ than the SunOS version, but the structures are very similar,
+ so we can use solib.c by defining the SunOS names. */
+#define link_object sod
+#define lo_name sod_name
+#define lo_library sod_library
+#define lo_unused sod_reserved
+#define lo_major sod_major
+#define lo_minor sod_minor
+#define lo_next sod_next
+
+#define l_addr som_addr
+#define l_name som_path
+#define l_next som_next
+#define lm_lop som_sod
+#define lm_lob som_sodbase
+#define l_prev som_sodbase
+#define lm_rwt som_write
+#define lm_ld som_dynamic
+#define lm_lpd som_spd
+
+#define link_dynamic_2 section_dispatch_table
+#define ld_loaded sdt_loaded
+#define ld_need sdt_sods
+#define ld_rules sdt_rules
+#define ld_got sdt_got
+#define ld_plt sdt_plt
+#define ld_rel sdt_rel
+#define ld_hash sdt_hash
+#define ld_stab sdt_nzlist
+#define ld_stab_hash sdt_filler2
+#define ld_buckets sdt_buckets
+#define ld_symbols sdt_strings
+#define ld_symb_size sdt_str_sz
+#define ld_text sdt_text_sz
+#define ld_plt_sz sdt_plt_sz
+#define rtc_symb rt_symbol
+#define rtc_sp rt_sp
+#define rtc_next rt_next
+
+#define r_debug so_debug
+#define ldd_version dd_version
+#define ldd_in_debugger dd_in_debugger
+#define ldd_sym_loaded dd_sym_loaded
+#define ldd_bp_addr dd_bpt_addr
+#define ldd_bp_inst dd_bpt_shadow
+#define ldd_cp dd_cc
+
+#define link_dynamic _dynamic
+#define ld_version d_version
+#define ldd d_debug
+#define ld_un d_un
+#define ld_2 d_sdt
diff --git a/gnu/usr.bin/binutils/ld/configure.tgt b/gnu/usr.bin/binutils/ld/configure.tgt
index 41919448b6f..a31fd0e6c8b 100644
--- a/gnu/usr.bin/binutils/ld/configure.tgt
+++ b/gnu/usr.bin/binutils/ld/configure.tgt
@@ -71,7 +71,7 @@ sparc64-*-netbsd*) targ_emul=elf64_sparc ;;
sparc64-*-openbsd*) targ_emul=elf64_sparc ;;
sparc*-*-netbsd*elf*) targ_emul=elf32_sparc ;;
sparc*-*-netbsd*) targ_emul=sparcnbsd ;;
-sparc*-*-openbsd*) targ_emul=sparcnbsd ;;
+sparc*-*-openbsd*) targ_emul=elf32_sparc ;;
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
targ_emul=elf32_sparc ;;
sparc-*-solaris2*) targ_emul=elf32_sparc