From owner-freebsd-doc@FreeBSD.ORG Wed Jun 19 23:51:08 2013 Return-Path: Delivered-To: doc@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 8D5E2A4F for ; Wed, 19 Jun 2013 23:51:08 +0000 (UTC) (envelope-from tony@hain-global-consulting.com) Received: from express.tndh.net (express.tndh.net [IPv6:2001:470:e930:1240:20d:56ff:fe04:4c0a]) by mx1.freebsd.org (Postfix) with ESMTP id 5B12817FE for ; Wed, 19 Jun 2013 23:51:08 +0000 (UTC) Received: from express.tndh.local ([2001:470:e930:1240:20d:56ff:fe04:4c0a] helo=eaglet) by express.tndh.net with esmtp (Exim 4.72 (FreeBSD)) (envelope-from ) id 1UpS9V-000Lvr-OB for doc@FreeBSD.org; Wed, 19 Jun 2013 16:51:07 -0700 From: "Tony Hain" To: Subject: broken instructions for buildkernel Date: Wed, 19 Jun 2013 16:51:01 -0700 Message-ID: <023e01ce6d47$dab08470$90118d50$@hain-global-consulting.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-Index: Ac5tOsfkV4FQwvLqTCyN7p7A0za8Ww== Content-Language: en-us X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "express.tndh.net", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see The administrator of that system for details. Content preview: The steps in http://www.freebsd.org/doc/en/books/handbook/kernelconfig-building.html are simply broken/incomplete. This sequence goes straight from 'get the src' to 'make buildkernel'. Doing that to build 10-current on a 9.1 fresh install results in "no previous prototype for yyparse". Searching for that error string shows it has been a recurring problem; & returns comments like ::: "you must do make buildworld first" ::: If buildworld is a prereq, why isn't that in the instruction sequence? Even if it is only required once, on a fresh install it should be possible to look at the FreeBSD docs and build a custom kernel without hitting errors and having to search for hints. [...] Content analysis details: (1.5 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FSL_HELO_NON_FQDN_1 FSL_HELO_NON_FQDN_1 0.0 HELO_NO_DOMAIN Relay reports its domain incorrectly 1.4 DOS_OUTLOOK_TO_MX Delivered direct to MX with Outlook headers X-SA-Exim-Connect-IP: 2001:470:e930:1240:20d:56ff:fe04:4c0a X-SA-Exim-Mail-From: tony@hain-global-consulting.com X-SA-Exim-Scanned: No (on express.tndh.net); SAEximRunCond expanded to false X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Jun 2013 23:51:08 -0000 The steps in http://www.freebsd.org/doc/en/books/handbook/kernelconfig-building.html are simply broken/incomplete. This sequence goes straight from 'get the src' to 'make buildkernel'. Doing that to build 10-current on a 9.1 fresh install results in "no previous prototype for yyparse". Searching for that error string shows it has been a recurring problem; & returns comments like ::: "you must do make buildworld first" ::: If buildworld is a prereq, why isn't that in the instruction sequence? Even if it is only required once, on a fresh install it should be possible to look at the FreeBSD docs and build a custom kernel without hitting errors and having to search for hints. On a separate but related note: the instruction to 'cp GENERIC /root/kernels/MYKERNEL' seems pointless/dated/waste-of-disk-space/likely-to-result-in-confusion-over-time. Direct editing of the entirety of a copy of GENERIC makes it harder to figure out what changes were made specifically for local functions later when GENERIC might have changed in an update. In searching for Hyper-V related builds I stumbled across the mechanism of using 'include' to pull in a current GENERIC, then isolate all local changes in the system specific file. It seems like this would be a better example to be using for the main doc. Something like # FreeBSD kernel conf local customizations # edits to this file allow the GENERIC file to remain untouched # include /usr/src/sys/PLATFORM/conf/GENERIC # target kernel name ident MYKERNEL # GENERIC has debug symbols set makeopts MODULES_OVERRIDE="" # PPS support enable options PPS_SYNC Tony