NetBSD Problem Report #53239

From rhialto@falu.nl  Mon Apr 30 18:45:57 2018
Return-Path: <rhialto@falu.nl>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id D6F5F7A210
	for <gnats-bugs@gnats.NetBSD.org>; Mon, 30 Apr 2018 18:45:57 +0000 (UTC)
Message-Id: <20180430184545.GA4729@falu.nl>
Date: Mon, 30 Apr 2018 20:45:45 +0200
From: Rhialto <rhialto@falu.nl>
Reply-To: Rhialto <rhialto@falu.nl>
To: gnats-bugs@NetBSD.org
Cc: Rhialto <rhialto@falu.nl>
Subject: [PATCHES] graphics/gle fails in configure stage (table_noop_array
 undef'd)
X-Send-Pr-Version: 3.95

>Number:         53239
>Category:       pkg
>Synopsis:       [PATCHES] graphics/gle fails in configure stage (table_noop_array undef'd)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 30 18:50:00 +0000 2018
>Last-Modified:  Mon Jul 30 10:02:01 +0000 2018
>Originator:     Rhialto
>Release:        NetBSD 7.0.1
>Organization:
>Environment:
	<The following information is extracted from your kernel. Please>
	<append output of "ldd", "ident" where relevant (multiple lines).>
System: NetBSD murthe.falu.nl 7.0.1 NetBSD 7.0.1 (MURTHE7.0.1) #0: Tue Jun 7 23:03:24 CEST 2016 rhialto@murthe.falu.nl:/usr/src/sys/arch/amd64/compile/MURTHE7.0.1 amd64
Architecture: x86_64
Machine: amd64
>Description:

graphics/gle fails in the configure stage with this error message:

checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for glGetError in -lGL... no
configure: error: Cannot find required GL library
*** Error code 1

Stop.

gle is needed for xscreensaver.

It looks like the GL problem here could easily occur to other packages
than gle.

The real problem is, as shown in the config.log file:


configure:9222: checking for glGetError in -lGL
configure:9253: gcc -o conftest -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/X11R7/include -I/usr/include -I/usr/pkg/include/libdrm -Wall -I/usr/pkg/include -I/usr/X11R7/include -I/usr/include -I/usr/pkg/include/libdrm -L/usr/pkg/gcc49/lib/gcc/x86_64--netbsd/4.9.4 -Wl,-R/usr/pkg/gcc49/lib/gcc/x86_64--netbsd/4.9.4 -L/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib conftest.c -lGL  -lSM -lICE  -L/usr/X11R7/lib -lX11  -lXext -lm >&5
/pkg_comp/obj/pkgsrc/graphics/gle/default/.buildlink/lib/libGL.so: undefined reference to `table_noop_array'
collect2: error: ld returned 1 exit status
configure:9256: $? = 1
configure: failed program was:
| #line 9230 "configure"
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
...some irrelevant defines...
| #define DELICATE_TESSELATOR 1
| #define AUTO_TEXTURE 1
| #define OPENGL_10 1
| /* end confdefs.h.  */
| 
| /* Override any gcc2 internal prototype to avoid an error.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| /* We use char because int might match the return type of a gcc2
|    builtin and then its argument prototype would still apply.  */
| char glGetError ();
| int
| main ()
| {
| glGetError ();
|   ;
|   return 0;
| }

Indeed, libGL.so has an undefined reference to table_noop_array:

pkg_comp:gcc49-70.conf# nm /usr/pkg/lib/libGL.so.1.2.0 | grep _noop_
                 U table_noop_array

>How-To-Repeat:
	Build graphics/gle on NetBSD 7.0.1 in a pkg_comp1 chroot
	with GCC version 4.9.
>Fix:

I made some new patches by taking them from wip/MesaLib-dfbsd. They look
to form a subset of those in PR 51796. In principle, it
adds a table netbsd_table_noop_array used in the assembly code.
For some reason that works better than the old version.

New/changed patches are

patch-src_mapi_entry.c
patch-src_mapi_entry__x86-64__tls.h
patch-src_mapi_entry__x86__tls.h
patch-src_mapi_table.h

Unchanged (but given as context for understanding) is

patch-src_mapi_u__current.c

*****  /usr/pkgsrc/graphics/MesaLib/patches/patch-src_mapi_entry.c
$NetBSD$

For some reason the previously used table_noop_array has a link error.

HACK: Create new array of noop functions.
BUG: Using environment variable LIBGL_DEBUG=verbose causes
massive failure in keyboard input for a Radeon 6450 (CAICOS) card.

--- src/mapi/entry.c.orig	2016-11-10 22:05:17.000000000 +0000
+++ src/mapi/entry.c
@@ -41,6 +41,1609 @@
 #define ENTRY_CURRENT_TABLE_GET U_STRINGIFY(u_current_get_table_internal)
 #endif

+#if defined(__NetBSD__) && defined(GLX_USE_TLS)
+static int netbsd_noop_generic(void) {
+    return 0;
+}
+
+/*
+ * src/mapi/table.h defines
+ *    MAPI_TABLE_NUM_SLOTS to be 
+ *      MAPI_TABLE_NUM_STATIC + MAPI_TABLE_NUM_DYNAMIC
+ *       = 1330 + 256 = 1586 entries
+ * according to values from mapi/shared-glapi/glapi_mapi_tmp.h
+ */
+
+const mapi_func netbsd_table_noop_array[] = {
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic,
+    (mapi_func)netbsd_noop_generic
+};
+#endif /* defined(__NetBSD__) && defined(GLX_USE_TLS) */
+
 #if defined(USE_X86_ASM) && defined(__GNUC__)
 #   ifdef GLX_USE_TLS
 #      include "entry_x86_tls.h"
*****  /usr/pkgsrc/graphics/MesaLib/patches/patch-src_mapi_entry__x86-64__tls.h
$NetBSD: patch-src_mapi_entry__x86-64__tls.h,v 1.2 2015/09/26 08:45:02 tnn Exp $

NetBSD only supports zero-initialized initial-exec tls variables in conjuction
with dlopen(3) at the moment.

Fix --enable-glx-tls with clang. From FreeBSD.

HACK: Renamed non-linking table_noop_array to locally created
netbsd_table_noop_array.

--- src/mapi/entry_x86-64_tls.h.orig	2015-09-11 17:41:47.000000000 +0000
+++ src/mapi/entry_x86-64_tls.h
@@ -36,10 +36,19 @@ __asm__(".text\n"
    ".balign 32\n"                                        \
    func ":"

+#ifdef __NetBSD__
 #define STUB_ASM_CODE(slot)                              \
    "movq " ENTRY_CURRENT_TABLE "@GOTTPOFF(%rip), %rax\n\t"  \
    "movq %fs:(%rax), %r11\n\t"                           \
+   "testq %r11, %r11\n\t"                                \
+   "cmoveq netbsd_table_noop_array@GOTPCREL(%rip), %r11\n\t"    \
    "jmp *(8 * " slot ")(%r11)"
+#else
+#define STUB_ASM_CODE(slot)                              \
+   "movq " ENTRY_CURRENT_TABLE "@GOTTPOFF(%rip), %rax\n\t"  \
+   "movq %fs:(%rax), %r11\n\t"                           \
+   "jmp *(8 * " slot ")(%r11)"
+#endif

 #define MAPI_TMP_STUB_ASM_GCC
 #include "mapi_tmp.h"
@@ -61,8 +70,8 @@ entry_patch_public(void)
 {
 }

-static char
-x86_64_entry_start[];
+extern char
+x86_64_entry_start[] __attribute__((visibility("hidden")));

 mapi_func
 entry_get_public(int slot)
*****  /usr/pkgsrc/graphics/MesaLib/patches/patch-src_mapi_entry__x86__tls.h
$NetBSD: patch-src_mapi_entry__x86__tls.h,v 1.2 2015/09/26 08:45:02 tnn Exp $

NetBSD only supports zero-initialized initial-exec tls variables in conjuction
with dlopen(3) at the moment.

Fix --enable-glx-tls with clang. From FreeBSD.

HACK: Renamed non-linking table_noop_array to locally created
netbsd_table_noop_array.

--- src/mapi/entry_x86_tls.h.orig	2015-09-02 17:06:23.000000000 +0000
+++ src/mapi/entry_x86_tls.h
@@ -50,10 +50,27 @@ __asm__(".balign 16\n"
    ".balign 16\n"                \
    func ":"

+#ifdef __NetBSD__
+extern const mapi_func table_noop_array[];
 #define STUB_ASM_CODE(slot)      \
    "call x86_current_tls\n\t"    \
    "movl %gs:(%eax), %eax\n\t"   \
+   "testl %eax, %eax\n\t"        \
+   "je 1f\n\t"                   \
+   "jmp *(4 * " slot ")(%eax)\n\t" \
+   "1:\n\t"                      \
+   "call 2f\n"                   \
+   "2:\n\t"                      \
+   "popl %eax\n\t"               \
+   "addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %eax\n\t" \
+   "movl netbsd_table_noop_array@GOT(%eax), %eax\n\t" \
    "jmp *(4 * " slot ")(%eax)"
+#else
+#define STUB_ASM_CODE(slot)      \
+   "call x86_current_tls\n\t"    \
+   "movl %gs:(%eax), %eax\n\t"   \
+   "jmp *(4 * " slot ")(%eax)"
+#endif

 #define MAPI_TMP_STUB_ASM_GCC
 #include "mapi_tmp.h"
@@ -71,8 +88,8 @@ __asm__(".text");
 extern unsigned long
 x86_current_tls();

-static char x86_entry_start[];
-static char x86_entry_end[];
+extern char x86_entry_start[] __attribute__((visibility("hidden")));
+extern char x86_entry_end[] __attribute__((visibility("hidden")));

 void
 entry_patch_public(void)
*****  /usr/pkgsrc/graphics/MesaLib/patches/patch-src_mapi_table.h
$NetBSD$

--- src/mapi/table.h.orig	2016-11-10 22:05:17.000000000 +0000
+++ src/mapi/table.h
@@ -40,7 +40,9 @@
 struct mapi_table;

 extern const mapi_func table_noop_array[];
-
+#if defined(__NetBSD__) && defined(GLX_USE_TLS)
+extern const mapi_func netbsd_table_noop_array[];
+#endif

 typedef void (*nop_handler_proc)(const char *name);

*****  /usr/pkgsrc/graphics/MesaLib/patches/patch-src_mapi_u__current.c
$NetBSD: patch-src_mapi_u__current.c,v 1.1 2015/09/11 16:27:30 tnn Exp $

NetBSD only supports zero-initialized initial-exec tls variables in conjuction
with dlopen(3) at the moment.

--- src/mapi/u_current.c.orig	2015-09-02 17:06:23.000000000 +0000
+++ src/mapi/u_current.c
@@ -101,7 +101,11 @@ extern void (*__glapi_noop_table[])(void

 __thread struct mapi_table *u_current_table
     __attribute__((tls_model("initial-exec")))
+#if defined(__NetBSD__)
+    = NULL; /* non-zero initializers not supported with dlopen */
+#else
     = (struct mapi_table *) table_noop_array;
+#endif

 __thread void *u_current_context
     __attribute__((tls_model("initial-exec")));
@@ -283,7 +287,11 @@ struct mapi_table *
 u_current_get_table_internal(void)
 {
 #if defined(GLX_USE_TLS)
+#  if defined(__NetBSD__)
+   return (likely(u_current_table) ? u_current_table : (struct mapi_table *) table_noop_array);
+#  else
    return u_current_table;
+#  endif
 #else
    if (ThreadSafe)
       return (struct mapi_table *) tss_get(u_current_table_tsd);

-Olaf.
-- 
___ Olaf 'Rhialto' Seibert  -- Wayland: Those who don't understand X
\X/ rhialto/at/falu.nl      -- are condemned to reinvent it. Poorly.



>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: pkg-manager->maya
Responsible-Changed-By: bsiegert@NetBSD.org
Responsible-Changed-When: Sat, 28 Jul 2018 12:39:32 +0000
Responsible-Changed-Why:
Maya, you know a lot about MesaLib. Any ideas?


Responsible-Changed-From-To: maya->pkg-manager
Responsible-Changed-By: maya@NetBSD.org
Responsible-Changed-When: Mon, 30 Jul 2018 10:02:01 +0000
Responsible-Changed-Why:


>Unformatted:
 	<Please check that the above is correct for the bug being reported,>
 	<and append source date of snapshot, if applicable (one line).>

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.