Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys don't assume _LP64 == supports COMPAT_NETBSD32.
details: https://anonhg.NetBSD.org/src/rev/ce777cf24071
branches: trunk
changeset: 448533:ce777cf24071
user: mrg <mrg%NetBSD.org@localhost>
date: Mon Feb 04 21:57:47 2019 +0000
description:
don't assume _LP64 == supports COMPAT_NETBSD32.
this is not true for alpha, ia64 and arm32 ports, and the first two
were not building because of it, and the latter would be missing
the oabi support (likely not a big deal, but still wrong.)
add a makefile fragment that tells you if it is supported and include
it where needed to define COMPAT_NETBSD32 when building the normal
kernel (ie, modules & rump.)
fixes alpha build, probably fixes ia64 build.
XXX: still leaves some netbsd32 code in rf_netbsdkintf.c, that should
be moved into some hooks, but first the configuration setup
needs to be moved into a common function the netbsd32 code can
call into, vs living in the switch case itself.
diffstat:
sys/compat/netbsd32/netbsd32.mk | 13 +++++++++++++
sys/dev/raidframe/rf_netbsdkintf.c | 24 +++++++++++-------------
sys/modules/Makefile | 12 ++++++------
sys/modules/raid/Makefile | 7 ++++++-
sys/rump/dev/lib/libraidframe/Makefile | 7 ++++++-
5 files changed, 42 insertions(+), 21 deletions(-)
diffs (181 lines):
diff -r ffa3ebf92b4f -r ce777cf24071 sys/compat/netbsd32/netbsd32.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/compat/netbsd32/netbsd32.mk Mon Feb 04 21:57:47 2019 +0000
@@ -0,0 +1,13 @@
+# $NetBSD: netbsd32.mk,v 1.1 2019/02/04 21:57:47 mrg Exp $
+
+# makefile fragment that tells you if you should support netbsd32 or not.
+# include this and check ${COMPAT_USE_NETBSD32} != "no".
+
+.if ${MACHINE_ARCH} == "x86_64" \
+ || ${MACHINE_CPU} == "arm" \
+ || ${MACHINE_ARCH} == "sparc64" \
+ || (!empty(MACHINE_ARCH:Mmips64*) && !defined(BSD_MK_COMPAT_FILE))
+COMPAT_USE_NETBSD32?=yes
+.else
+COMPAT_USE_NETBSD32?=no
+.endif
diff -r ffa3ebf92b4f -r ce777cf24071 sys/dev/raidframe/rf_netbsdkintf.c
--- a/sys/dev/raidframe/rf_netbsdkintf.c Mon Feb 04 18:14:53 2019 +0000
+++ b/sys/dev/raidframe/rf_netbsdkintf.c Mon Feb 04 21:57:47 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: rf_netbsdkintf.c,v 1.362 2019/02/03 11:03:53 martin Exp $ */
+/* $NetBSD: rf_netbsdkintf.c,v 1.363 2019/02/04 21:57:47 mrg Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc.
@@ -101,10 +101,11 @@
***********************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.362 2019/02/03 11:03:53 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.363 2019/02/04 21:57:47 mrg Exp $");
#ifdef _KERNEL_OPT
#include "opt_raid_autoconfig.h"
+#include "opt_compat_netbsd32.h"
#endif
#include <sys/param.h>
@@ -150,10 +151,7 @@
#include "rf_compat80.h"
-#ifdef _LP64
-#ifndef COMPAT_NETBSD32
-#define COMPAT_NETBSD32 1
-#endif
+#ifdef COMPAT_NETBSD32
#include "rf_compat32.h"
#endif
@@ -1112,7 +1110,7 @@
case RAIDFRAME_PARITYMAP_GET_DISABLE:
case RAIDFRAME_PARITYMAP_SET_DISABLE:
case RAIDFRAME_PARITYMAP_SET_PARAMS:
-#ifdef _LP64
+#ifdef COMPAT_NETBSD32
case RAIDFRAME_GET_INFO32:
#endif
if ((rs->sc_flags & RAIDF_INITED) == 0)
@@ -1162,7 +1160,7 @@
/* configure the system */
case RAIDFRAME_CONFIGURE:
-#ifdef _LP64
+#ifdef COMPAT_NETBSD32
case RAIDFRAME_CONFIGURE32:
#endif
@@ -1179,7 +1177,7 @@
if (k_cfg == NULL) {
return (ENOMEM);
}
-#ifdef _LP64
+#ifdef COMPAT_NETBSD32
if (cmd == RAIDFRAME_CONFIGURE32 &&
(l->l_proc->p_flag & PK_32) != 0)
MODULE_CALL_HOOK(raidframe_netbsd32_config_hook,
@@ -1487,21 +1485,21 @@
return(retcode);
case RAIDFRAME_GET_INFO:
-#ifdef _LP64
+#ifdef COMPAT_NETBSD32
case RAIDFRAME_GET_INFO32:
-#endif /* LP64 */
+#endif
RF_Malloc(d_cfg, sizeof(RF_DeviceConfig_t),
(RF_DeviceConfig_t *));
if (d_cfg == NULL)
return (ENOMEM);
retcode = rf_get_info(raidPtr, d_cfg);
if (retcode == 0) {
-#ifdef _LP64
+#ifdef COMPAT_NETBSD32
if (raidframe_netbsd32_config_hook.hooked &&
cmd == RAIDFRAME_GET_INFO32)
ucfgp = NETBSD32PTR64(*(netbsd32_pointer_t *)data);
else
-#endif /* _LP64 */
+#endif
ucfgp = *(RF_DeviceConfig_t **)data;
retcode = copyout(d_cfg, ucfgp, sizeof(RF_DeviceConfig_t));
}
diff -r ffa3ebf92b4f -r ce777cf24071 sys/modules/Makefile
--- a/sys/modules/Makefile Mon Feb 04 18:14:53 2019 +0000
+++ b/sys/modules/Makefile Mon Feb 04 21:57:47 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.217 2019/02/03 08:02:25 pgoyette Exp $
+# $NetBSD: Makefile,v 1.218 2019/02/04 21:57:48 mrg Exp $
.include <bsd.own.mk>
@@ -272,10 +272,9 @@
SUBDIR+= wmimsi
.endif
-.if ${MACHINE_ARCH} == "x86_64" \
- || ${MACHINE_CPU} == "arm" \
- || ${MACHINE_ARCH} == "sparc64" \
- || (!empty(MACHINE_ARCH:Mmips64*) && !defined(BSD_MK_COMPAT_FILE))
+.include "${.CURDIR}/../compat/netbsd32/netbsd32.mk"
+.if ${COMPAT_USE_NETBSD32} != "no"
+
SUBDIR+= compat_netbsd32
SUBDIR+= compat_netbsd32_09 compat_netbsd32_12
SUBDIR+= compat_netbsd32_13 compat_netbsd32_16
@@ -291,12 +290,13 @@
SUBDIR+= compat_netbsd32_sysvipc_14
SUBDIR+= compat_netbsd32_sysvipc_50
SUBDIR+= compat_netbsd32_raid
-.endif
.if ${MACHINE_ARCH} == "x86_64"
SUBDIR+= compat_linux32
.endif
+.endif
+
.if ${MACHINE_ARCH} == "i386"
SUBDIR+= ati_pcigart
SUBDIR+= compat_freebsd
diff -r ffa3ebf92b4f -r ce777cf24071 sys/modules/raid/Makefile
--- a/sys/modules/raid/Makefile Mon Feb 04 18:14:53 2019 +0000
+++ b/sys/modules/raid/Makefile Mon Feb 04 21:57:47 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.4 2019/02/03 09:32:07 pgoyette Exp $
+# $NetBSD: Makefile,v 1.5 2019/02/04 21:57:48 mrg Exp $
.include "../Makefile.inc"
@@ -41,4 +41,9 @@
CPPFLAGS+= -DRF_INCLUDE_PARITY_DECLUSTERING=1
CPPFLAGS+= -DRF_INCLUDE_PARITY_DECLUSTERING_DS=1
+.include "${.CURDIR}/../../compat/netbsd32/netbsd32.mk"
+.if ${COMPAT_USE_NETBSD32} != "no"
+CPPFLAGS.rf_netbsdkintf.c+= -DCOMPAT_NETBSD32
+.endif
+
.include <bsd.kmodule.mk>
diff -r ffa3ebf92b4f -r ce777cf24071 sys/rump/dev/lib/libraidframe/Makefile
--- a/sys/rump/dev/lib/libraidframe/Makefile Mon Feb 04 18:14:53 2019 +0000
+++ b/sys/rump/dev/lib/libraidframe/Makefile Mon Feb 04 21:57:47 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.11 2018/01/18 00:32:49 mrg Exp $
+# $NetBSD: Makefile,v 1.12 2019/02/04 21:57:48 mrg Exp $
#
.PATH: ${.CURDIR}/../../../../dev/raidframe
@@ -35,5 +35,10 @@
SRCS+= rf_compat80.c
.endif
+.include "${.CURDIR}/../../../../compat/netbsd32/netbsd32.mk"
+.if ${COMPAT_USE_NETBSD32} != "no"
+CPPFLAGS.rf_netbsdkintf.c+= -DCOMPAT_NETBSD32
+.endif
+
.include <bsd.lib.mk>
.include <bsd.klinks.mk>
Home |
Main Index |
Thread Index |
Old Index