From nobody@FreeBSD.org  Tue Mar 18 22:17:22 2014
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	(using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by hub.freebsd.org (Postfix) with ESMTPS id E557CB2F
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 18 Mar 2014 22:17:21 +0000 (UTC)
Received: from cgiserv.freebsd.org (cgiserv.freebsd.org [IPv6:2001:1900:2254:206a::50:4])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx1.freebsd.org (Postfix) with ESMTPS id D217A7F5
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 18 Mar 2014 22:17:21 +0000 (UTC)
Received: from cgiserv.freebsd.org ([127.0.1.6])
	by cgiserv.freebsd.org (8.14.8/8.14.8) with ESMTP id s2IMHLXc059997
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 18 Mar 2014 22:17:21 GMT
	(envelope-from nobody@cgiserv.freebsd.org)
Received: (from nobody@localhost)
	by cgiserv.freebsd.org (8.14.8/8.14.8/Submit) id s2IMHLoO059993;
	Tue, 18 Mar 2014 22:17:21 GMT
	(envelope-from nobody)
Message-Id: <201403182217.s2IMHLoO059993@cgiserv.freebsd.org>
Date: Tue, 18 Mar 2014 22:17:21 GMT
From: Alan Somers <asomers@freebsd.org>
To: freebsd-gnats-submit@FreeBSD.org
Subject: config(8) does not respect KERNCONFDIR
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         187712
>Category:       kern
>Synopsis:       config(8) does not respect KERNCONFDIR
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    asomers
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Mar 18 22:20:00 UTC 2014
>Closed-Date:    Mon Apr 21 16:33:59 UTC 2014
>Last-Modified:  Mon Apr 21 16:33:59 UTC 2014
>Originator:     Alan Somers
>Release:        11.0 CURRENT
>Organization:
Spectra Logic
>Environment:
FreeBSD alans-fbsd-head 11.0-CURRENT FreeBSD 11.0-CURRENT #40 r263266: Mon Mar 17 13:07:35 MDT 2014     alans@ns1.eng.sldomain.com:/vmpool/obj/usr/home/alans/freebsd/head/sys/GENERIC  amd64
>Description:
When doing a buildkernel, you can set the make variable KERNCONFDIR if the kernel config file is in a location other than sys/${ARCH}/conf.  However, if your kernel config file uses the "include" statement to include another config file, config(8) will not search in KERNCONFDIR to find the included file.  My patch makes config(8) aware of KERNCONFDIR when processing the "include" statement, and causes make to set KERNCONFDIR when invoking config(8).

This bug is the more general case of ports/164242.
>How-To-Repeat:
# cd /usr/src
# cp sys/amd64/conf/GENERIC  /tmp/GENERIC_dup
# echo "include GENERIC_dup" > /tmp/GENERIC2
# make KERNCONFDIR="/tmp" KERNCONF=GENERIC2 buildkernel
--------------------------------------------------------------
>Fix:
Apply attached patch

Patch attached with submission follows:

Index: Makefile.inc1
===================================================================
--- Makefile.inc1	(revision 263266)
+++ Makefile.inc1	(working copy)
@@ -1013,7 +1013,7 @@
 	@echo ">>> stage 1: configuring the kernel"
 	@echo "--------------------------------------------------------------"
 	cd ${KRNLCONFDIR}; \
-		PATH=${TMPPATH} \
+		PATH=${TMPPATH} KERNCONFDIR=${KERNCONFDIR} \
 		    config ${CONFIGARGS} -d ${KRNLOBJDIR}/${_kernel} \
 			${KERNCONFDIR}/${_kernel}
 .endif
Index: usr.sbin/config/lang.l
===================================================================
--- usr.sbin/config/lang.l	(revision 263266)
+++ usr.sbin/config/lang.l	(working copy)
@@ -34,6 +34,7 @@
 #include <assert.h>
 #include <ctype.h>
 #include <err.h>
+#include <stdlib.h>
 #include <string.h>
 #include "y.tab.h"
 #include "config.h"
@@ -258,6 +259,7 @@
 	FILE *fp;
 	struct incl *in;
 	char *fnamebuf;
+	char *kernconfdir;
 
 	fnamebuf = NULL;
 	fp = fopen(fname, "r");
@@ -269,6 +271,16 @@
 		}
 	}
 	if (fp == NULL) {
+		kernconfdir = getenv("KERNCONFDIR");
+		if (kernconfdir != NULL) {
+			asprintf(&fnamebuf, "%s/%s", kernconfdir, fname);
+			if (fnamebuf != NULL) {
+				fp = fopen(fnamebuf, "r");
+				free(fnamebuf);
+			}
+		}
+	}
+	if (fp == NULL) {
 		yyerror("cannot open included file");
 		return (-1);
 	}


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->asomers 
Responsible-Changed-By: asomers 
Responsible-Changed-When: Tue Mar 18 22:44:38 UTC 2014 
Responsible-Changed-Why:  
I'll take it 

http://www.freebsd.org/cgi/query-pr.cgi?pr=187712 

From: Alan Somers <asomers@freebsd.org>
To: bug-followup@FreeBSD.org, asomers@freebsd.org
Cc:  
Subject: Re: kern/187712: config(8) does not respect KERNCONFDIR
Date: Wed, 19 Mar 2014 16:04:40 -0600

 --e89a8f921906e53dcb04f4fcd609
 Content-Type: text/plain; charset=ISO-8859-1
 
 As will and imp suggested, this patch uses a "-I path" argument like
 compilers do, instead of KERNCONFDIR.
 
 --e89a8f921906e53dcb04f4fcd609
 Content-Type: text/plain; charset=US-ASCII; name="187712.patch"
 Content-Disposition: attachment; filename="187712.patch"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_hsz5qmqv0
 
 SW5kZXg6IE1ha2VmaWxlLmluYzEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTWFrZWZpbGUuaW5jMQkocmV2aXNp
 b24gMjYzMzc4KQorKysgTWFrZWZpbGUuaW5jMQkod29ya2luZyBjb3B5KQpAQCAtMTAxNSw3ICsx
 MDE1LDcgQEAKIAljZCAke0tSTkxDT05GRElSfTsgXAogCQlQQVRIPSR7VE1QUEFUSH0gXAogCQkg
 ICAgY29uZmlnICR7Q09ORklHQVJHU30gLWQgJHtLUk5MT0JKRElSfS8ke19rZXJuZWx9IFwKLQkJ
 CSR7S0VSTkNPTkZESVJ9LyR7X2tlcm5lbH0KKwkJCS1JICR7S0VSTkNPTkZESVJ9ICR7S0VSTkNP
 TkZESVJ9LyR7X2tlcm5lbH0KIC5lbmRpZgogLmlmICFkZWZpbmVkKE5PX0NMRUFOKSAmJiAhZGVm
 aW5lZChOT19LRVJORUxDTEVBTikKIAlAZWNobwpJbmRleDogdXNyLnNiaW4vY29uZmlnL2NvbmZp
 Zy44Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT0KLS0tIHVzci5zYmluL2NvbmZpZy9jb25maWcuOAkocmV2aXNpb24gMjYz
 Mzc4KQorKysgdXNyLnNiaW4vY29uZmlnL2NvbmZpZy44CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2
 ICszNyw3IEBACiAuU2ggU1lOT1BTSVMKIC5ObQogLk9wIEZsIENWZ3AKKy5PcCBGbCBJIEFyIHBh
 dGgKIC5PcCBGbCBkIEFyIGRlc3RkaXIKIC5BciBTWVNURU1fTkFNRQogLk5tCkBAIC02OSw2ICs3
 MCwxMiBAQAoga2VybmVsIGltYWdlIHdpbGwgY29udGFpbiBmdWxsIGNvbmZpZ3VyYXRpb24gZmls
 ZXMgaW5jbHVkZWQKIGxpdGVyYWxseSAocHJlc2VydmluZyBjb21tZW50cykuCiBUaGlzIGZsYWcg
 aXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKy5JdCBGbCBJIEFyIHBhdGgKK1Nl
 YXJjaCBpbgorLkFyIHBhdGgKK2ZvciBhbnkgZmlsZSBpbmNsdWRlZCBieSB0aGUgCisuSWMgaW5j
 bHVkZQorZGlyZWN0aXZlLiAgVGhpcyBvcHRpb24gbWF5IGJlIHNwZWNpZmllZCBtb3JlIHRoYW4g
 b25jZS4KIC5JdCBGbCBkIEFyIGRlc3RkaXIKIFVzZQogLkFyIGRlc3RkaXIKSW5kZXg6IHVzci5z
 YmluL2NvbmZpZy9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB1c3Iuc2Jpbi9jb25maWcvY29uZmln
 LmgJKHJldmlzaW9uIDI2MzM3OCkKKysrIHVzci5zYmluL2NvbmZpZy9jb25maWcuaAkod29ya2lu
 ZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCwxMyBAQAogCiBTVEFJTFFfSEVBRChoaW50X2hlYWQsIGhp
 bnQpIGhpbnRzOwogCitzdHJ1Y3QgaW5jbHVkZXBhdGggeworCWNoYXIJKnBhdGg7CisJU0xJU1Rf
 RU5UUlkoaW5jbHVkZXBhdGgpIHBhdGhfbmV4dDsKK307CisKK1NMSVNUX0hFQUQoLCBpbmNsdWRl
 cGF0aCkgaW5jbHVkZXBhdGg7CisKIC8qCiAgKiBUYWcgcHJlc2VudCBpbiB0aGUga2VybmVsY29u
 Zi50bWxwIHRlbXBsYXRlIGZpbGUuIEl0J3MgbWFuZGF0b3J5IGZvciB0aG9zZQogICogdHdvIHN0
 cmluZ3MgdG8gYmUgdGhlIHNhbWUuIE90aGVyd2lzZSB5b3UnbGwgZ2V0IGludG8gdHJvdWJsZS4K
 SW5kZXg6IHVzci5zYmluL2NvbmZpZy9sYW5nLmwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdXNyLnNiaW4vY29u
 ZmlnL2xhbmcubAkocmV2aXNpb24gMjYzMzc4KQorKysgdXNyLnNiaW4vY29uZmlnL2xhbmcubAko
 d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGFzc2VydC5oPgogI2lu
 Y2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8ZXJyLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CiAj
 aW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSAieS50YWIuaCIKICNpbmNsdWRlICJjb25maWcu
 aCIKQEAgLTI1Nyw2ICsyNTgsNyBAQAogewogCUZJTEUgKmZwOwogCXN0cnVjdCBpbmNsICppbjsK
 KwlzdHJ1Y3QgaW5jbHVkZXBhdGgqIGlwYXRoOwogCWNoYXIgKmZuYW1lYnVmOwogCiAJZm5hbWVi
 dWYgPSBOVUxMOwpAQCAtMjY5LDYgKzI3MSwxNyBAQAogCQl9CiAJfQogCWlmIChmcCA9PSBOVUxM
 KSB7CisJCVNMSVNUX0ZPUkVBQ0goaXBhdGgsICZpbmNsdWRlcGF0aCwgcGF0aF9uZXh0KSB7CisJ
 CQlhc3ByaW50ZigmZm5hbWVidWYsICIlcy8lcyIsIGlwYXRoLT5wYXRoLCBmbmFtZSk7CisJCQlp
 ZiAoZm5hbWVidWYgIT0gTlVMTCkgeworCQkJCWZwID0gZm9wZW4oZm5hbWVidWYsICJyIik7CisJ
 CQkJZnJlZShmbmFtZWJ1Zik7CisJCQl9CisJCQlpZiAoZnAgIT0gTlVMTCkKKwkJCQlicmVhazsK
 KwkJfQorCX0KKwlpZiAoZnAgPT0gTlVMTCkgewogCQl5eWVycm9yKCJjYW5ub3Qgb3BlbiBpbmNs
 dWRlZCBmaWxlIik7CiAJCXJldHVybiAoLTEpOwogCX0KSW5kZXg6IHVzci5zYmluL2NvbmZpZy9t
 YWluLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
 PT09PT09PT09PT09PT09PQotLS0gdXNyLnNiaW4vY29uZmlnL21haW4uYwkocmV2aXNpb24gMjYz
 Mzc4KQorKysgdXNyLnNiaW4vY29uZmlnL21haW4uYwkod29ya2luZyBjb3B5KQpAQCAtMTEwLDE1
 ICsxMTAsMjUgQEAKIAlpbnQgY2gsIGxlbjsKIAljaGFyICpwOwogCWNoYXIgKmtlcm5maWxlOwor
 CXN0cnVjdCBpbmNsdWRlcGF0aCogaXBhdGg7CiAJaW50IHByaW50bWFjaGluZTsKIAogCXByaW50
 bWFjaGluZSA9IDA7CiAJa2VybmZpbGUgPSBOVUxMOwotCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJn
 YywgYXJndiwgIkNkOmdtcFZ4OiIpKSAhPSAtMSkKKwlTTElTVF9JTklUKCZpbmNsdWRlcGF0aCk7
 CisJd2hpbGUgKChjaCA9IGdldG9wdChhcmdjLCBhcmd2LCAiQ0k6ZDpnbXBWeDoiKSkgIT0gLTEp
 CiAJCXN3aXRjaCAoY2gpIHsKIAkJY2FzZSAnQyc6CiAJCQlmaWxlYmFzZWQgPSAxOwogCQkJYnJl
 YWs7CisJCWNhc2UgJ0knOgorCQkJaXBhdGggPSAoc3RydWN0IGluY2x1ZGVwYXRoICopIFwKKwkJ
 CSAgICAJY2FsbG9jKDEsIHNpemVvZiAoc3RydWN0IGluY2x1ZGVwYXRoKSk7CisJCQlpZiAoaXBh
 dGggPT0gTlVMTCkKKwkJCQllcnIoRVhJVF9GQUlMVVJFLCAiY2FsbG9jIik7CisJCQlpcGF0aC0+
 cGF0aCA9IG9wdGFyZzsKKwkJCVNMSVNUX0lOU0VSVF9IRUFEKCZpbmNsdWRlcGF0aCwgaXBhdGgs
 IHBhdGhfbmV4dCk7CisJCQlicmVhazsKIAkJY2FzZSAnbSc6CiAJCQlwcmludG1hY2hpbmUgPSAx
 OwogCQkJYnJlYWs7Cg==
 --e89a8f921906e53dcb04f4fcd609--

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/187712: commit references a PR
Date: Thu, 20 Mar 2014 17:30:14 +0000 (UTC)

 Author: asomers
 Date: Thu Mar 20 17:30:09 2014
 New Revision: 263429
 URL: http://svnweb.freebsd.org/changeset/base/263429
 
 Log:
   Fix kern/187712: config(8) does not respect KERNCONFDIR.
   The impact of this bug is that you cannot build a kernel if both of the
   following are true:
   1) The kernel config file is in a non-default location
   2) The kernel config file uses the "include" statement from config(5).
   
   usr.sbin/config/main.c
   usr.sbin/config/config.8
   usr.sbin/config/config.h
   usr.sbin/config/lang.l
   	Added a "-I path" option to config(8).  By analogy to cc(1), it adds
   	an extra path in which the "include" statement will search for
   	files.
   
   Makefile.inc1
   	Pass "-I ${KERNCONFDIR}" to config(8).
   
   PR:		kern/187712
   Reviewed by:	will, imp (previous version)
   MFC after:	3 weeks
   Sponsored by:	Spectra Logic Corporation
 
 Modified:
   head/Makefile.inc1
   head/usr.sbin/config/config.8
   head/usr.sbin/config/config.h
   head/usr.sbin/config/lang.l
   head/usr.sbin/config/main.c
 
 Modified: head/Makefile.inc1
 ==============================================================================
 --- head/Makefile.inc1	Thu Mar 20 17:13:07 2014	(r263428)
 +++ head/Makefile.inc1	Thu Mar 20 17:30:09 2014	(r263429)
 @@ -1015,7 +1015,7 @@ buildkernel:
  	cd ${KRNLCONFDIR}; \
  		PATH=${TMPPATH} \
  		    config ${CONFIGARGS} -d ${KRNLOBJDIR}/${_kernel} \
 -			${KERNCONFDIR}/${_kernel}
 +			-I ${KERNCONFDIR} ${KERNCONFDIR}/${_kernel}
  .endif
  .if !defined(NO_CLEAN) && !defined(NO_KERNELCLEAN)
  	@echo
 
 Modified: head/usr.sbin/config/config.8
 ==============================================================================
 --- head/usr.sbin/config/config.8	Thu Mar 20 17:13:07 2014	(r263428)
 +++ head/usr.sbin/config/config.8	Thu Mar 20 17:30:09 2014	(r263429)
 @@ -37,6 +37,7 @@
  .Sh SYNOPSIS
  .Nm
  .Op Fl CVgp
 +.Op Fl I Ar path
  .Op Fl d Ar destdir
  .Ar SYSTEM_NAME
  .Nm
 @@ -69,6 +70,12 @@ If the INCLUDE_CONFIG_FILE is present in
  kernel image will contain full configuration files included
  literally (preserving comments).
  This flag is kept for backward compatibility.
 +.It Fl I Ar path
 +Search in
 +.Ar path
 +for any file included by the 
 +.Ic include
 +directive.  This option may be specified more than once.
  .It Fl d Ar destdir
  Use
  .Ar destdir
 
 Modified: head/usr.sbin/config/config.h
 ==============================================================================
 --- head/usr.sbin/config/config.h	Thu Mar 20 17:13:07 2014	(r263428)
 +++ head/usr.sbin/config/config.h	Thu Mar 20 17:30:09 2014	(r263429)
 @@ -144,6 +144,13 @@ struct hint {
  
  STAILQ_HEAD(hint_head, hint) hints;
  
 +struct includepath {
 +	char	*path;
 +	SLIST_ENTRY(includepath) path_next;
 +};
 +
 +SLIST_HEAD(, includepath) includepath;
 +
  /*
   * Tag present in the kernelconf.tmlp template file. It's mandatory for those
   * two strings to be the same. Otherwise you'll get into trouble.
 
 Modified: head/usr.sbin/config/lang.l
 ==============================================================================
 --- head/usr.sbin/config/lang.l	Thu Mar 20 17:13:07 2014	(r263428)
 +++ head/usr.sbin/config/lang.l	Thu Mar 20 17:30:09 2014	(r263429)
 @@ -34,6 +34,7 @@
  #include <assert.h>
  #include <ctype.h>
  #include <err.h>
 +#include <stdlib.h>
  #include <string.h>
  #include "y.tab.h"
  #include "config.h"
 @@ -257,6 +258,7 @@ include(const char *fname, int ateof)
  {
  	FILE *fp;
  	struct incl *in;
 +	struct includepath* ipath;
  	char *fnamebuf;
  
  	fnamebuf = NULL;
 @@ -269,6 +271,17 @@ include(const char *fname, int ateof)
  		}
  	}
  	if (fp == NULL) {
 +		SLIST_FOREACH(ipath, &includepath, path_next) {
 +			asprintf(&fnamebuf, "%s/%s", ipath->path, fname);
 +			if (fnamebuf != NULL) {
 +				fp = fopen(fnamebuf, "r");
 +				free(fnamebuf);
 +			}
 +			if (fp != NULL)
 +				break;
 +		}
 +	}
 +	if (fp == NULL) {
  		yyerror("cannot open included file");
  		return (-1);
  	}
 
 Modified: head/usr.sbin/config/main.c
 ==============================================================================
 --- head/usr.sbin/config/main.c	Thu Mar 20 17:13:07 2014	(r263428)
 +++ head/usr.sbin/config/main.c	Thu Mar 20 17:30:09 2014	(r263429)
 @@ -110,15 +110,25 @@ main(int argc, char **argv)
  	int ch, len;
  	char *p;
  	char *kernfile;
 +	struct includepath* ipath;
  	int printmachine;
  
  	printmachine = 0;
  	kernfile = NULL;
 -	while ((ch = getopt(argc, argv, "Cd:gmpVx:")) != -1)
 +	SLIST_INIT(&includepath);
 +	while ((ch = getopt(argc, argv, "CI:d:gmpVx:")) != -1)
  		switch (ch) {
  		case 'C':
  			filebased = 1;
  			break;
 +		case 'I':
 +			ipath = (struct includepath *) \
 +			    	calloc(1, sizeof (struct includepath));
 +			if (ipath == NULL)
 +				err(EXIT_FAILURE, "calloc");
 +			ipath->path = optarg;
 +			SLIST_INSERT_HEAD(&includepath, ipath, path_next);
 +			break;
  		case 'm':
  			printmachine = 1;
  			break;
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->patched 
State-Changed-By: asomers 
State-Changed-When: Thu Mar 20 18:47:54 UTC 2014 
State-Changed-Why:  
Fixed in head by r263429 

http://www.freebsd.org/cgi/query-pr.cgi?pr=187712 
State-Changed-From-To: patched->closed 
State-Changed-By: asomers 
State-Changed-When: Mon Apr 21 16:33:59 UTC 2014 
State-Changed-Why:  
MFCed by changes 264325 and 264326 

http://www.freebsd.org/cgi/query-pr.cgi?pr=187712 
>Unformatted:
 >>> Kernel build for GENERIC2 started on Tue Mar 18 12:13:27 MDT 2014
 --------------------------------------------------------------
 ===> GENERIC2
 mkdir -p /vmpool/obj/usr/home/alans/freebsd/head/sys
 
 --------------------------------------------------------------
 >>> stage 1: configuring the kernel
 --------------------------------------------------------------
 cd /usr/home/alans/freebsd/head/sys/amd64/conf;  PATH=/vmpool/obj/usr/home/alans/freebsd/head/tmp/legacy/usr/sbin:/vmpool/obj/usr/home/alans/freebsd/head/tmp/legacy/usr/bin:/vmpool/obj/usr/home/alans/freebsd/head/tmp/legacy/usr/games:/vmpool/obj/usr/home /alans/freebsd/head/tmp/legacy/bin:/vmpool/obj/usr/home/alans/freebsd/head/tmp/usr/sbin:/vmpool/obj/usr/home/alans/freebsd/head/tmp/usr/bin:/vmpool/obj/usr/home/alans/freebsd/head/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin  config  -d /vmpool/obj/usr/ho me/alans/freebsd/head/sys/GENERIC2  /tmp/GENERIC2
 config: /tmp/GENERIC2:2: cannot open included file
 *** Error code 1
 
 
