diff options
author | 2006-10-08 21:12:36 +0000 | |
---|---|---|
committer | 2006-10-08 21:12:36 +0000 | |
commit | fabff02b3960f31d645173714f19eba73b8be846 (patch) | |
tree | 16e7708e4eaecd02cb4d1c0b95350544b317d95f | |
parent | Add status register bits string for pretty %b printf. (diff) | |
download | wireguard-openbsd-fabff02b3960f31d645173714f19eba73b8be846.tar.xz wireguard-openbsd-fabff02b3960f31d645173714f19eba73b8be846.zip |
Define superH obsd-specific emulations for ld, and use it by default.
-rw-r--r-- | gnu/usr.bin/binutils/bfd/config.bfd | 6 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/bfd/configure | 6 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/bfd/configure.in | 6 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/bfd/elf32-sh.c | 19 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/bfd/targets.c | 4 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/gas/config/tc-sh.h | 2 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/gas/configure | 2 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/gas/configure.in | 2 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.am | 13 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/Makefile.in | 13 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/configure.tgt | 6 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/emulparams/shelf_obsd.sh | 16 | ||||
-rw-r--r-- | gnu/usr.bin/binutils/ld/emulparams/shlelf_obsd.sh | 3 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/gcc/config/sh/openbsd.h | 11 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/gcc/config/sh/t-openbsd | 2 |
15 files changed, 102 insertions, 9 deletions
diff --git a/gnu/usr.bin/binutils/bfd/config.bfd b/gnu/usr.bin/binutils/bfd/config.bfd index e5edb3d7705..9e4ddf6b3e0 100644 --- a/gnu/usr.bin/binutils/bfd/config.bfd +++ b/gnu/usr.bin/binutils/bfd/config.bfd @@ -1080,7 +1080,7 @@ case "${targ}" in ;; #endif - sh*-*-openbsd* | sh*l*-*-netbsdelf*) + sh*l*-*-netbsdelf*) targ_defvec=bfd_elf32_shlnbsd_vec targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec" #ifdef BFD64 @@ -1098,6 +1098,10 @@ case "${targ}" in targ_defvec=bfd_elf32_shnbsd_vec targ_selvecs="bfd_elf32_shlnbsd_vec shcoff_vec shlcoff_vec" ;; + sh*-*-openbsd*) + targ_defvec=bfd_elf32_shlobsd_vec + targ_selvecs="bfd_elf32_shobsd_vec" + ;; shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*) targ_defvec=bfd_elf32_shl_vec targ_selvecs="bfd_elf32_sh_vec shlcoff_vec shcoff_vec shlcoff_small_vec shcoff_small_vec" diff --git a/gnu/usr.bin/binutils/bfd/configure b/gnu/usr.bin/binutils/bfd/configure index 35d60abbf5e..79345c064e7 100644 --- a/gnu/usr.bin/binutils/bfd/configure +++ b/gnu/usr.bin/binutils/bfd/configure @@ -5464,7 +5464,9 @@ rm -f conftest* powerpc-*-netbsd*) COREFILE=netbsd-core.lo ;; powerpc-*-*bsd*) COREFILE=netbsd-core.lo ;; s390*-*-*) COREFILE=trad-core.lo ;; - sh*-*-netbsd*) COREFILE=netbsd-core.lo ;; + sh*-*-netbsd* | sh*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; sparc-*-netbsd* | sparc*-*-openbsd*) COREFILE=netbsd-core.lo ;; @@ -6354,7 +6356,9 @@ do bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_tradlittlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; diff --git a/gnu/usr.bin/binutils/bfd/configure.in b/gnu/usr.bin/binutils/bfd/configure.in index 0155aa2d386..88986613e1d 100644 --- a/gnu/usr.bin/binutils/bfd/configure.in +++ b/gnu/usr.bin/binutils/bfd/configure.in @@ -372,7 +372,9 @@ changequote([,])dnl powerpc-*-netbsd*) COREFILE=netbsd-core.lo ;; powerpc-*-*bsd*) COREFILE=netbsd-core.lo ;; s390*-*-*) COREFILE=trad-core.lo ;; - sh*-*-netbsd*) COREFILE=netbsd-core.lo ;; + sh*-*-netbsd* | sh*-*-openbsd*) + COREFILE=netbsd-core.lo + ;; sparc-*-netbsd* | sparc*-*-openbsd*) COREFILE=netbsd-core.lo ;; @@ -663,7 +665,9 @@ do bfd_elf32_shl_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo" ;; bfd_elf32_shlin_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shlnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shlobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_shnbsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; + bfd_elf32_shobsd_vec) tb="$tb elf32-sh.lo elf32.lo $elf coff-sh.lo cofflink.lo" ;; bfd_elf32_sparc_vec) tb="$tb elf32-sparc.lo elf32.lo $elf" ;; bfd_elf32_tradbigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; bfd_elf32_tradlittlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo" ;; diff --git a/gnu/usr.bin/binutils/bfd/elf32-sh.c b/gnu/usr.bin/binutils/bfd/elf32-sh.c index a3b13145099..542a7cb347b 100644 --- a/gnu/usr.bin/binutils/bfd/elf32-sh.c +++ b/gnu/usr.bin/binutils/bfd/elf32-sh.c @@ -7574,4 +7574,23 @@ elf32_shlin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) #include "elf32-target.h" +/* OpenBSD support. */ +#undef TARGET_BIG_SYM +#define TARGET_BIG_SYM bfd_elf32_shobsd_vec +#undef TARGET_BIG_NAME +#define TARGET_BIG_NAME "elf32-sh-obsd" +#undef TARGET_LITTLE_SYM +#define TARGET_LITTLE_SYM bfd_elf32_shlobsd_vec +#undef TARGET_LITTLE_NAME +#define TARGET_LITTLE_NAME "elf32-shl-obsd" +#undef ELF_MAXPAGESIZE +#define ELF_MAXPAGESIZE 0x10000 +#undef elf_symbol_leading_char +#define elf_symbol_leading_char 0 +#undef elf32_bed +#define elf32_bed elf32_sh_obsd_bed + +#include "elf32-target.h" + + #endif /* INCLUDE_SHMEDIA */ diff --git a/gnu/usr.bin/binutils/bfd/targets.c b/gnu/usr.bin/binutils/bfd/targets.c index d17fca2d959..58042d51b31 100644 --- a/gnu/usr.bin/binutils/bfd/targets.c +++ b/gnu/usr.bin/binutils/bfd/targets.c @@ -577,7 +577,9 @@ extern const bfd_target bfd_elf32_shblin_vec; extern const bfd_target bfd_elf32_shl_vec; extern const bfd_target bfd_elf32_shlin_vec; extern const bfd_target bfd_elf32_shlnbsd_vec; +extern const bfd_target bfd_elf32_shlobsd_vec; extern const bfd_target bfd_elf32_shnbsd_vec; +extern const bfd_target bfd_elf32_shobsd_vec; extern const bfd_target bfd_elf32_sparc_vec; extern const bfd_target bfd_elf32_tradbigmips_vec; extern const bfd_target bfd_elf32_tradlittlemips_vec; @@ -867,7 +869,9 @@ static const bfd_target * const _bfd_target_vector[] = { &bfd_elf32_shl_vec, &bfd_elf32_shlin_vec, &bfd_elf32_shlnbsd_vec, + &bfd_elf32_shlobsd_vec, &bfd_elf32_shnbsd_vec, + &bfd_elf32_shobsd_vec, #ifdef BFD64 &bfd_elf32_sh64_vec, &bfd_elf32_sh64l_vec, diff --git a/gnu/usr.bin/binutils/gas/config/tc-sh.h b/gnu/usr.bin/binutils/gas/config/tc-sh.h index 9931847b01c..6e2e829af8c 100644 --- a/gnu/usr.bin/binutils/gas/config/tc-sh.h +++ b/gnu/usr.bin/binutils/gas/config/tc-sh.h @@ -189,6 +189,8 @@ extern int target_big_endian; #define TARGET_FORMAT (!target_big_endian ? "elf32-sh-linux" : "elf32-shbig-linux") #elif defined(TE_NetBSD) #define TARGET_FORMAT (!target_big_endian ? "elf32-shl-nbsd" : "elf32-sh-nbsd") +#elif defined(TE_OpenBSD) +#define TARGET_FORMAT (!target_big_endian ? "elf32-shl-obsd" : "elf32-sh-obsd") #else #define TARGET_FORMAT (!target_big_endian ? "elf32-shl" : "elf32-sh") #endif diff --git a/gnu/usr.bin/binutils/gas/configure b/gnu/usr.bin/binutils/gas/configure index 58a39d85960..e0c382c881a 100644 --- a/gnu/usr.bin/binutils/gas/configure +++ b/gnu/usr.bin/binutils/gas/configure @@ -4510,7 +4510,7 @@ echo "$as_me: error: Solaris must be configured little endian" >&2;} sh5*-*-netbsd*) fmt=elf em=nbsd ;; sh64*-*-netbsd*) fmt=elf em=nbsd ;; sh*-*-netbsdelf*) fmt=elf em=nbsd ;; - sh*-*-openbsd*) fmt=elf em=nbsd endian=little ;; + sh*-*-openbsd*) fmt=elf em=obsd endian=little ;; sh-*-elf*) fmt=elf ;; sh-*-coff*) fmt=coff ;; sh-*-nto*) fmt=elf ;; diff --git a/gnu/usr.bin/binutils/gas/configure.in b/gnu/usr.bin/binutils/gas/configure.in index 60a0369904a..9b2c724b6bf 100644 --- a/gnu/usr.bin/binutils/gas/configure.in +++ b/gnu/usr.bin/binutils/gas/configure.in @@ -465,7 +465,7 @@ changequote([,])dnl sh5*-*-netbsd*) fmt=elf em=nbsd ;; sh64*-*-netbsd*) fmt=elf em=nbsd ;; sh*-*-netbsdelf*) fmt=elf em=nbsd ;; - sh*-*-openbsd*) fmt=elf em=nbsd endian=little ;; + sh*-*-openbsd*) fmt=elf em=obsd endian=little ;; sh-*-elf*) fmt=elf ;; sh-*-coff*) fmt=coff ;; sh-*-nto*) fmt=elf ;; diff --git a/gnu/usr.bin/binutils/ld/Makefile.am b/gnu/usr.bin/binutils/ld/Makefile.am index 29cfe400b30..53572dea70a 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.am +++ b/gnu/usr.bin/binutils/ld/Makefile.am @@ -337,6 +337,8 @@ ALL_EMULATIONS = \ eshlelf_nbsd.o \ eshelf_nto.o \ eshlelf_nto.o \ + eshelf_obsd.o \ + eshlelf_obsd.o \ eshl.o \ eshlelf.o \ eshpe.o \ @@ -1394,6 +1396,17 @@ eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" +eshelf_obsd.c: $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_obsd "$(tdir_shelf_obsd)" +eshlelf_obsd.c: $(srcdir)/emulparams/shlelf_obsd.sh \ + $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_obsd "$(tdir_shlelf_obsd)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} diff --git a/gnu/usr.bin/binutils/ld/Makefile.in b/gnu/usr.bin/binutils/ld/Makefile.in index 7a80545d940..ad99274b2ff 100644 --- a/gnu/usr.bin/binutils/ld/Makefile.in +++ b/gnu/usr.bin/binutils/ld/Makefile.in @@ -451,6 +451,8 @@ ALL_EMULATIONS = \ eshlelf_nbsd.o \ eshelf_nto.o \ eshlelf_nto.o \ + eshelf_obsd.o \ + eshlelf_obsd.o \ eshl.o \ eshlelf.o \ eshpe.o \ @@ -2120,6 +2122,17 @@ eshlelf_nbsd.c: $(srcdir)/emulparams/shlelf_nbsd.sh \ eshlelf_nto.c: $(srcdir)/emulparams/shlelf_nto.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} shlelf_nto "$(tdir_shlelf_nto)" +eshelf_obsd.c: $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shelf_obsd "$(tdir_shelf_obsd)" +eshlelf_obsd.c: $(srcdir)/emulparams/shlelf_obsd.sh \ + $(srcdir)/emulparams/shelf_obsd.sh \ + $(srcdir)/emulparams/shelf.sh \ + $(srcdir)/emulparams/elf_obsd.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} shlelf_obsd "$(tdir_shlelf_obsd)" eshlelf.c: $(srcdir)/emulparams/shlelf.sh \ $(srcdir)/emulparams/shelf.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} diff --git a/gnu/usr.bin/binutils/ld/configure.tgt b/gnu/usr.bin/binutils/ld/configure.tgt index 6692e3e26ee..f6aca64deac 100644 --- a/gnu/usr.bin/binutils/ld/configure.tgt +++ b/gnu/usr.bin/binutils/ld/configure.tgt @@ -334,7 +334,7 @@ sh64-*-netbsd*) targ_emul=shelf64_nbsd targ_extra_emuls="shlelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd" ;; -sh*l*-*-netbsdelf*|sh*-*-openbsd*) +sh*l*-*-netbsdelf*) targ_emul=shlelf_nbsd targ_extra_emuls=shelf_nbsd ;; @@ -342,6 +342,10 @@ sh*-*-netbsdelf*) targ_emul=shelf_nbsd targ_extra_emuls=shlelf_nbsd ;; +sh*-*-openbsd*) + targ_emul=shlelf_obsd + targ_extra_emuls=shelf_obsd + ;; shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*) targ_emul=shlelf targ_extra_emuls="shelf shl sh" diff --git a/gnu/usr.bin/binutils/ld/emulparams/shelf_obsd.sh b/gnu/usr.bin/binutils/ld/emulparams/shelf_obsd.sh new file mode 100644 index 00000000000..03883ef4ab6 --- /dev/null +++ b/gnu/usr.bin/binutils/ld/emulparams/shelf_obsd.sh @@ -0,0 +1,16 @@ +# If you change this file, please alsolook at files which source this one: +# shlelf_obsd.sh + +. ${srcdir}/emulparams/shelf.sh +. ${srcdir}/emulparams/elf_obsd.sh + +OUTPUT_FORMAT="elf32-sh-obsd" +TEXT_START_ADDR=0x400000 +MAXPAGESIZE=0x10000 + +DATA_START_SYMBOLS='__data_start = . ;'; + +ENTRY=_start + +unset EMBEDDED +unset OTHER_SECTIONS diff --git a/gnu/usr.bin/binutils/ld/emulparams/shlelf_obsd.sh b/gnu/usr.bin/binutils/ld/emulparams/shlelf_obsd.sh new file mode 100644 index 00000000000..dfab67a2ca1 --- /dev/null +++ b/gnu/usr.bin/binutils/ld/emulparams/shlelf_obsd.sh @@ -0,0 +1,3 @@ +. ${srcdir}/emulparams/shelf_obsd.sh + +OUTPUT_FORMAT="elf32-shl-obsd" diff --git a/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h b/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h index 4b133319fed..e5ccff542e0 100644 --- a/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h +++ b/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h @@ -49,10 +49,17 @@ Boston, MA 02111-1307, USA. */ #define LINK_DEFAULT_CPU_EMUL "" #undef SUBTARGET_LINK_EMUL_SUFFIX -#define SUBTARGET_LINK_EMUL_SUFFIX "_nbsd" +#define SUBTARGET_LINK_EMUL_SUFFIX "_obsd" #undef SUBTARGET_LINK_SPEC -#define SUBTARGET_LINK_SPEC LINK_SPEC +#ifdef OBSD_NO_DYNAMIC_LIBRARIES +#define SUBTARGET_LINK_SPEC \ + "%{g:%{!nostdlib:-L/usr/lib/debug}} %{!nostdlib:%{!r*:%{!e*:-e start}}} -dc -dp %{assert*}" +#else +#define SUBTARGET_LINK_SPEC \ + "%{g:%{!nostdlib:-L/usr/lib/debug}} %{!shared:%{!nostdlib:%{!r*:%{!e*:-e start}}}} %{shared:-Bshareable -x} -dc -dp %{R*} %{static:-Bstatic} %{assert*}" +#endif + #undef LINK_SPEC #define LINK_SPEC SH_LINK_SPEC diff --git a/gnu/usr.bin/gcc/gcc/config/sh/t-openbsd b/gnu/usr.bin/gcc/gcc/config/sh/t-openbsd index 408530f7ec7..f0ab26e0ce3 100644 --- a/gnu/usr.bin/gcc/gcc/config/sh/t-openbsd +++ b/gnu/usr.bin/gcc/gcc/config/sh/t-openbsd @@ -13,7 +13,7 @@ EXTRA_MULTILIB_PARTS= FPBIT = DPBIT = -MULTILIB_OPTIONS += m3e/m4 +MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m3e/m4 MULTILIB_DIRNAMES= MULTILIB_MATCHES = MULTILIB_EXCEPTIONS= |