summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2006-10-06 20:58:15 +0000
committermiod <miod@openbsd.org>2006-10-06 20:58:15 +0000
commit2f0504870622346ae2f69899daa9fe8a414692b5 (patch)
tree3de1fd01f0c37defb20d69a5782e4f8242a0f53e
parentsync (diff)
downloadwireguard-openbsd-2f0504870622346ae2f69899daa9fe8a414692b5.tar.xz
wireguard-openbsd-2f0504870622346ae2f69899daa9fe8a414692b5.zip
Early bits for a 32-bit SuperH toolchain, currently for little-endian
systems only; more work is necessary in ld land.
-rw-r--r--Makefile.cross4
-rw-r--r--gnu/usr.bin/binutils/Makefile.bsd-wrapper4
-rw-r--r--gnu/usr.bin/binutils/bfd/config.bfd2
-rw-r--r--gnu/usr.bin/binutils/gas/configure1
-rw-r--r--gnu/usr.bin/binutils/gas/configure.in1
-rw-r--r--gnu/usr.bin/binutils/gdb/configure.tgt2
-rw-r--r--gnu/usr.bin/binutils/gdb/sh-tdep.c14
-rw-r--r--gnu/usr.bin/binutils/ld/configure.tgt2
-rw-r--r--gnu/usr.bin/gcc/gcc/config.gcc7
-rw-r--r--gnu/usr.bin/gcc/gcc/config/sh/openbsd.h106
-rw-r--r--gnu/usr.bin/gcc/gcc/config/sh/sh-protos.h4
-rw-r--r--gnu/usr.bin/gcc/gcc/config/sh/sh.c15
-rw-r--r--gnu/usr.bin/gcc/gcc/config/sh/sh.h6
-rw-r--r--gnu/usr.bin/gcc/gcc/config/sh/t-openbsd19
-rw-r--r--share/mk/bsd.own.mk5
-rw-r--r--sys/sys/exec_aout.h3
-rw-r--r--sys/sys/exec_elf.h3
17 files changed, 182 insertions, 16 deletions
diff --git a/Makefile.cross b/Makefile.cross
index 28520fd65cd..f0a46276cab 100644
--- a/Makefile.cross
+++ b/Makefile.cross
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile.cross,v 1.20 2006/09/27 08:38:58 mickey Exp $
+# $OpenBSD: Makefile.cross,v 1.21 2006/10/06 20:58:15 miod Exp $
cross-tools: cross-includes cross-binutils cross-gcc cross-lib
cross-distrib: cross-tools cross-bin cross-etc-root-var
@@ -17,6 +17,8 @@ TARGET_ARCH= m88k
TARGET_ARCH= mips64
.elif (${TARGET} == "macppc" || ${TARGET} == "mvmeppc")
TARGET_ARCH= powerpc
+.elif (${TARGET} == "landisk")
+TARGET_ARCH= sh
.else
TARGET_ARCH= ${TARGET}
.endif
diff --git a/gnu/usr.bin/binutils/Makefile.bsd-wrapper b/gnu/usr.bin/binutils/Makefile.bsd-wrapper
index 969af582b82..b41d7e0e272 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.66 2006/07/12 23:00:07 espie Exp $
+# $OpenBSD: Makefile.bsd-wrapper,v 1.67 2006/10/06 20:58:17 miod Exp $
-NEW_BINUTILS=alpha amd64 arm hppa hppa64 i386 mips64 powerpc sparc sparc64
+NEW_BINUTILS=alpha amd64 arm hppa hppa64 i386 mips64 powerpc sh sparc sparc64
.for _arch in ${MACHINE_ARCH}
. if !empty(NEW_BINUTILS:M${_arch})
diff --git a/gnu/usr.bin/binutils/bfd/config.bfd b/gnu/usr.bin/binutils/bfd/config.bfd
index a3bdcb9b886..e5edb3d7705 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*l*-*-netbsdelf*)
+ sh*-*-openbsd* | sh*l*-*-netbsdelf*)
targ_defvec=bfd_elf32_shlnbsd_vec
targ_selvecs="bfd_elf32_shnbsd_vec shcoff_vec shlcoff_vec"
#ifdef BFD64
diff --git a/gnu/usr.bin/binutils/gas/configure b/gnu/usr.bin/binutils/gas/configure
index a35663d3dd0..58a39d85960 100644
--- a/gnu/usr.bin/binutils/gas/configure
+++ b/gnu/usr.bin/binutils/gas/configure
@@ -4510,6 +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-*-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 f28993a30c3..60a0369904a 100644
--- a/gnu/usr.bin/binutils/gas/configure.in
+++ b/gnu/usr.bin/binutils/gas/configure.in
@@ -465,6 +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-*-elf*) fmt=elf ;;
sh-*-coff*) fmt=coff ;;
sh-*-nto*) fmt=elf ;;
diff --git a/gnu/usr.bin/binutils/gdb/configure.tgt b/gnu/usr.bin/binutils/gdb/configure.tgt
index ea0ef9da4cf..ad260433386 100644
--- a/gnu/usr.bin/binutils/gdb/configure.tgt
+++ b/gnu/usr.bin/binutils/gdb/configure.tgt
@@ -178,7 +178,7 @@ sh-*-elf*) gdb_target=embed ;;
sh-*-linux*) gdb_target=linux
build_gdbserver=yes
;;
-sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
+sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu | sh*-*-openbsd*)
gdb_target=nbsd ;;
sh-*-nto*) gdb_target=nto ;;
sh*) gdb_target=embed ;;
diff --git a/gnu/usr.bin/binutils/gdb/sh-tdep.c b/gnu/usr.bin/binutils/gdb/sh-tdep.c
index 48e994d4e2e..327454fd875 100644
--- a/gnu/usr.bin/binutils/gdb/sh-tdep.c
+++ b/gnu/usr.bin/binutils/gdb/sh-tdep.c
@@ -161,6 +161,7 @@ sh_sh2e_register_name (int reg_nr)
return register_names[reg_nr];
}
+#ifdef notyet
static const char *
sh_sh2a_register_name (int reg_nr)
{
@@ -240,6 +241,7 @@ sh_sh2a_nofpu_register_name (int reg_nr)
return NULL;
return register_names[reg_nr];
}
+#endif
static const char *
sh_sh_dsp_register_name (int reg_nr)
@@ -1402,6 +1404,7 @@ sh2e_show_regs (void)
printf_filtered (("FP8-FP15 %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n"), (long) read_register (FP0_REGNUM + 8), (long) read_register (FP0_REGNUM + 9), (long) read_register (FP0_REGNUM + 10), (long) read_register (FP0_REGNUM + 11), (long) read_register (FP0_REGNUM + 12), (long) read_register (FP0_REGNUM + 13), (long) read_register (FP0_REGNUM + 14), (long) read_register (FP0_REGNUM + 15));
}
+#ifdef notyet
static void
sh2a_show_regs (void)
{
@@ -1536,6 +1539,7 @@ sh2a_nofpu_show_regs (void)
(long) read_register (R0_BANK0_REGNUM + 18),
(long) read_register (R0_BANK0_REGNUM + 19));
}
+#endif
static void
sh3e_show_regs (void)
@@ -1758,6 +1762,7 @@ sh_show_regs_command (char *args, int from_tty)
(*sh_show_regs) ();
}
+#ifdef notyet
static struct type *
sh_sh2a_register_type (struct gdbarch *gdbarch, int reg_nr)
{
@@ -1769,6 +1774,7 @@ sh_sh2a_register_type (struct gdbarch *gdbarch, int reg_nr)
else
return builtin_type_int;
}
+#endif
/* Return the GDB type object for the "standard" data type
of data in register N. */
@@ -2210,6 +2216,7 @@ sh_dsp_register_sim_regno (int nr)
return nr;
}
+#ifdef notyet
static int
sh_sh2a_register_sim_regno (int nr)
{
@@ -2238,6 +2245,7 @@ sh_sh2a_register_sim_regno (int nr)
}
return legacy_register_sim_regno (nr);
}
+#endif
static struct sh_frame_cache *
sh_alloc_frame_cache (void)
@@ -2495,6 +2503,7 @@ sh_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
inst = read_memory_unsigned_integer (addr - 2, 2);
}
+#ifdef notyet
/* On SH2a check if the previous instruction was perhaps a MOVI20.
That's allowed for the epilogue. */
if ((gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_sh2a
@@ -2502,6 +2511,7 @@ sh_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
&& addr > func_addr + 6
&& IS_MOVI20 (read_memory_unsigned_integer (addr - 4, 2)))
addr -= 4;
+#endif
if (pc >= addr)
return 1;
@@ -2522,12 +2532,14 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
case bfd_mach_sh2e:
sh_show_regs = sh2e_show_regs;
break;
+#ifdef notyet
case bfd_mach_sh2a:
sh_show_regs = sh2a_show_regs;
break;
case bfd_mach_sh2a_nofpu:
sh_show_regs = sh2a_nofpu_show_regs;
break;
+#endif
case bfd_mach_sh_dsp:
sh_show_regs = sh_dsp_show_regs;
break;
@@ -2638,6 +2650,7 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_push_dummy_call (gdbarch, sh_push_dummy_call_fpu);
break;
+#ifdef notyet
case bfd_mach_sh2a:
set_gdbarch_register_name (gdbarch, sh_sh2a_register_name);
set_gdbarch_register_type (gdbarch, sh_sh2a_register_type);
@@ -2659,6 +2672,7 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_pseudo_register_read (gdbarch, sh_pseudo_register_read);
set_gdbarch_pseudo_register_write (gdbarch, sh_pseudo_register_write);
break;
+#endif
case bfd_mach_sh_dsp:
set_gdbarch_register_name (gdbarch, sh_sh_dsp_register_name);
diff --git a/gnu/usr.bin/binutils/ld/configure.tgt b/gnu/usr.bin/binutils/ld/configure.tgt
index c8a620f7f52..6692e3e26ee 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*l*-*-netbsdelf*|sh*-*-openbsd*)
targ_emul=shlelf_nbsd
targ_extra_emuls=shelf_nbsd
;;
diff --git a/gnu/usr.bin/gcc/gcc/config.gcc b/gnu/usr.bin/gcc/gcc/config.gcc
index 0c1867549a3..b9f8c13897f 100644
--- a/gnu/usr.bin/gcc/gcc/config.gcc
+++ b/gnu/usr.bin/gcc/gcc/config.gcc
@@ -2412,6 +2412,13 @@ sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
;;
esac
;;
+sh-*-openbsd*)
+ tm_file="sh/little.h dbxelf.h sh/sh.h elfos.h sh/elf.h ${tm_file}"
+ tmake_file="${tmake_file} sh/t-sh sh/t-elf"
+ # SH3, software floating point
+ target_cpu_default="SH1_BIT|SH2_BIT|SH3_BIT"
+ tmake_file="${tmake_file} sh/t-openbsd"
+ ;;
sh-*-*)
tm_file="${tm_file} sh/coff.h"
;;
diff --git a/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h b/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h
new file mode 100644
index 00000000000..4b133319fed
--- /dev/null
+++ b/gnu/usr.bin/gcc/gcc/config/sh/openbsd.h
@@ -0,0 +1,106 @@
+/* Definitions for SH running OpenBSD using ELF
+ Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+ Adapted from the NetBSD configuration contributed by Wasabi Systems, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#define OBSD_NO_DYNAMIC_LIBRARIES
+
+/* Get generic OpenBSD definitions. */
+#include <openbsd.h>
+
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT \
+ (TARGET_CPU_DEFAULT | USERMODE_BIT | TARGET_ENDIAN_DEFAULT)
+
+#define TARGET_OS_CPP_BUILTINS() OPENBSD_OS_CPP_BUILTINS_ELF()
+
+/* Layout of source language data types */
+
+/* This must agree with <machine/_types.h> */
+#undef SIZE_TYPE
+#define SIZE_TYPE "long unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "long int"
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+#undef LINK_DEFAULT_CPU_EMUL
+#define LINK_DEFAULT_CPU_EMUL ""
+
+#undef SUBTARGET_LINK_EMUL_SUFFIX
+#define SUBTARGET_LINK_EMUL_SUFFIX "_nbsd"
+
+#undef SUBTARGET_LINK_SPEC
+#define SUBTARGET_LINK_SPEC LINK_SPEC
+
+#undef LINK_SPEC
+#define LINK_SPEC SH_LINK_SPEC
+
+/* As an elf system, we need crtbegin/crtend stuff. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "\
+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
+
+#undef PREFERRED_DEBUGGING_TYPE
+#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
+
+/* Provide a CPP_SPEC appropriate for OpenBSD. */
+#undef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC OBSD_CPP_SPEC
+
+/* Define because we use the label and we do not need them. */
+#define NO_PROFILE_COUNTERS
+
+#undef FUNCTION_PROFILER
+#define FUNCTION_PROFILER(STREAM,LABELNO) \
+do \
+ { \
+ if (TARGET_SHMEDIA32) \
+ { \
+ /* FIXME */ \
+ abort (); \
+ } \
+ else if (TARGET_SHMEDIA64) \
+ { \
+ /* FIXME */ \
+ abort (); \
+ } \
+ else \
+ { \
+ fprintf((STREAM), "\tmov.l\t%sLP%d,r1\n", \
+ LOCAL_LABEL_PREFIX, (LABELNO)); \
+ fprintf((STREAM), "\tmova\t%sLP%dr,r0\n", \
+ LOCAL_LABEL_PREFIX, (LABELNO)); \
+ fprintf((STREAM), "\tjmp\t@r1\n"); \
+ fprintf((STREAM), "\tnop\n"); \
+ fprintf((STREAM), "\t.align\t2\n"); \
+ fprintf((STREAM), "%sLP%d:\t.long\t__mcount\n", \
+ LOCAL_LABEL_PREFIX, (LABELNO)); \
+ fprintf((STREAM), "%sLP%dr:\n", LOCAL_LABEL_PREFIX, (LABELNO)); \
+ } \
+ } \
+while (0)
diff --git a/gnu/usr.bin/gcc/gcc/config/sh/sh-protos.h b/gnu/usr.bin/gcc/gcc/config/sh/sh-protos.h
index 197b97d9243..475ab9dadfc 100644
--- a/gnu/usr.bin/gcc/gcc/config/sh/sh-protos.h
+++ b/gnu/usr.bin/gcc/gcc/config/sh/sh-protos.h
@@ -131,7 +131,7 @@ extern bool sh_cannot_change_mode_class
extern void sh_mark_label PARAMS ((rtx, int));
extern int sh_register_move_cost
PARAMS ((enum machine_mode mode, enum reg_class, enum reg_class));
-extern int check_use_sfunc_addr (rtx, rtx);
+extern int check_use_sfunc_addr PARAMS ((rtx, rtx));
#ifdef HARD_CONST
extern void fpscr_set_from_mem PARAMS ((int, HARD_REG_SET));
@@ -143,4 +143,6 @@ extern void sh_pr_trapa PARAMS ((cpp_reader *));
extern void sh_pr_nosave_low_regs PARAMS ((cpp_reader *));
#endif
+extern rtx sh_get_pr_initial_val PARAMS ((void));
+
#endif /* ! GCC_SH_PROTOS_H */
diff --git a/gnu/usr.bin/gcc/gcc/config/sh/sh.c b/gnu/usr.bin/gcc/gcc/config/sh/sh.c
index e0cbbca88d5..883380d6047 100644
--- a/gnu/usr.bin/gcc/gcc/config/sh/sh.c
+++ b/gnu/usr.bin/gcc/gcc/config/sh/sh.c
@@ -4579,6 +4579,7 @@ sh_expand_prologue ()
int d, i;
int d_rounding = 0;
int save_flags = target_flags;
+ int size;
current_function_interrupt = sh_cfun_interrupt_handler_p ();
@@ -4872,7 +4873,12 @@ sh_expand_prologue ()
target_flags = save_flags;
- output_stack_adjust (-rounded_frame_size (d) + d_rounding,
+ size = rounded_frame_size (d);
+
+ if (warn_stack_larger_than && size > stack_larger_than_size)
+ warning ("stack usage is %d bytes", size);
+
+ output_stack_adjust (-size + d_rounding,
stack_pointer_rtx, TARGET_SH5 ? 0 : 1, frame_insn);
if (frame_pointer_needed)
@@ -7931,6 +7937,13 @@ sh_register_operand (op, mode)
return register_operand (op, mode);
}
+rtx
+sh_get_pr_initial_val (void)
+{
+ return
+ get_hard_reg_initial_val (Pmode, TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG);
+}
+
/* INSN is an sfunc; return the rtx that describes the address used. */
static rtx
extract_sfunc_addr (rtx insn)
diff --git a/gnu/usr.bin/gcc/gcc/config/sh/sh.h b/gnu/usr.bin/gcc/gcc/config/sh/sh.h
index 14667794e20..e8310502d34 100644
--- a/gnu/usr.bin/gcc/gcc/config/sh/sh.h
+++ b/gnu/usr.bin/gcc/gcc/config/sh/sh.h
@@ -2140,9 +2140,7 @@ while (0)
can ignore COUNT. */
#define RETURN_ADDR_RTX(COUNT, FRAME) \
- (((COUNT) == 0) \
- ? get_hard_reg_initial_val (Pmode, TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG) \
- : (rtx) 0)
+ (((COUNT) == 0) ? sh_get_pr_initial_val () : (rtx) 0)
/* A C expression whose value is RTL representing the location of the
incoming return address at the beginning of any function, before the
@@ -2989,7 +2987,7 @@ while (0)
#define ASM_OUTPUT_LABELREF(FILE, NAME) \
do \
{ \
- char * lname; \
+ const char * lname; \
\
STRIP_DATALABEL_ENCODING (lname, (NAME)); \
if (lname[0] == '*') \
diff --git a/gnu/usr.bin/gcc/gcc/config/sh/t-openbsd b/gnu/usr.bin/gcc/gcc/config/sh/t-openbsd
new file mode 100644
index 00000000000..408530f7ec7
--- /dev/null
+++ b/gnu/usr.bin/gcc/gcc/config/sh/t-openbsd
@@ -0,0 +1,19 @@
+#TARGET_LIBGCC2_CFLAGS = -fpic
+TARGET_LIBGCC2_CFLAGS =
+LIB1ASMFUNCS_CACHE = _ic_invalidate
+
+LIB2FUNCS_EXTRA=
+
+EXTRA_MULTILIB_PARTS=
+
+# OpenBSD's C library includes a fast software FP library that
+# has support for setting/setting the rounding mode, exception
+# mask, etc. Therefore, we don't want to include software FP
+# in libgcc.
+FPBIT =
+DPBIT =
+
+MULTILIB_OPTIONS += m3e/m4
+MULTILIB_DIRNAMES=
+MULTILIB_MATCHES =
+MULTILIB_EXCEPTIONS=
diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk
index cf9fb2b68c6..641de0a5f98 100644
--- a/share/mk/bsd.own.mk
+++ b/share/mk/bsd.own.mk
@@ -1,4 +1,4 @@
-# $OpenBSD: bsd.own.mk,v 1.96 2006/09/26 23:14:52 martin Exp $
+# $OpenBSD: bsd.own.mk,v 1.97 2006/10/06 20:58:17 miod Exp $
# $NetBSD: bsd.own.mk,v 1.24 1996/04/13 02:08:09 thorpej Exp $
# Host-specific overrides
@@ -116,7 +116,8 @@ STATIC?= -static
# don't try to generate PIC versions of libraries on machines
# which don't support PIC.
-.if ${MACHINE_ARCH} == "m88k" || ${MACHINE_ARCH} == "vax"
+.if ${MACHINE_ARCH} == "m88k" || ${MACHINE_ARCH} == "vax" || \
+ ${MACHINE_ARCH} == "sh"
NOPIC=
.endif
diff --git a/sys/sys/exec_aout.h b/sys/sys/exec_aout.h
index b989c2e5b8c..47cb20fa66e 100644
--- a/sys/sys/exec_aout.h
+++ b/sys/sys/exec_aout.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: exec_aout.h,v 1.21 2004/08/10 18:51:15 deraadt Exp $ */
+/* $OpenBSD: exec_aout.h,v 1.22 2006/10/06 20:58:17 miod Exp $ */
/* $NetBSD: exec_aout.h,v 1.15 1996/05/18 17:20:54 christos Exp $ */
/*
@@ -76,6 +76,7 @@ struct exec {
#define MID_ALPHA 141 /* Alpha BSD binary */
#define MID_MIPS 142 /* big-endian MIPS */
#define MID_ARM6 143 /* ARM6 */
+#define MID_SH3 145 /* SH3 */
#define MID_POWERPC 149 /* big-endian PowerPC */
#define MID_VAX 150 /* vax */
#define MID_SPARC64 151 /* LP64 sparc */
diff --git a/sys/sys/exec_elf.h b/sys/sys/exec_elf.h
index f72f81e145e..e100776d48e 100644
--- a/sys/sys/exec_elf.h
+++ b/sys/sys/exec_elf.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: exec_elf.h,v 1.41 2006/01/06 18:53:05 millert Exp $ */
+/* $OpenBSD: exec_elf.h,v 1.42 2006/10/06 20:58:17 miod Exp $ */
/*
* Copyright (c) 1995, 1996 Erik Theisen. All rights reserved.
*
@@ -189,6 +189,7 @@ typedef struct {
#define EM_PPC 20 /* PowerPC */
#define EM_ARM 40 /* Advanced RISC Machines ARM */
#define EM_ALPHA 41 /* DEC ALPHA */
+#define EM_SH 42 /* Hitachi/Renesas Super-H */
#define EM_SPARCV9 43 /* SPARC version 9 */
#define EM_ALPHA_EXP 0x9026 /* DEC ALPHA */
#define EM_AMD64 62 /* AMD64 architecture */