From owner-freebsd-current@freebsd.org Thu Jan 21 01:48:00 2021 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D0BA94E13A8 for ; Thu, 21 Jan 2021 01:48:00 +0000 (UTC) (envelope-from editor@callfortesting.org) Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4DLldr0sy8z4cR2 for ; Thu, 21 Jan 2021 01:47:59 +0000 (UTC) (envelope-from editor@callfortesting.org) Received: by mail-pg1-x529.google.com with SMTP id 15so281394pgx.7 for ; Wed, 20 Jan 2021 17:47:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=NZGd/8u/+ebYCs8/bBcgJ1AnczsBCQh5qg8b/BL7cZI=; b=F8csoM/5JV6yhoODKNnE+9LQLqnZnucYPggfhOL/FwUMLnj7ogcQ5+GRvKYWNkg5vo pphgqjXbN3Jedh3C+/NKFcqajf4gfhduLraT9J/JvHwAynSirHUx2388sFaZyU3up8cQ FsFNKOJ+mQSOesVEDlq5c+t2YHP1R3jInZ4fzes8M6WfJCzgv3I7yT4IL5pNkTszCQCB AjsGSK5wuWhQkMSA9cu53FLB24YhwIad9aay1pj1i1eKQ0SmxcLKqXYwvUhEY1uDrsyH 4jrc2aBMw5VY7PUZQK3WX8DgMiNWM4eUblHlzImq/yYBRyWUxdG2vFrlpOMVDRcPjNvL bxTA== X-Gm-Message-State: AOAM532EX3k6DqHCPnnJsoihflo5H3iJMYXsflgN8j4l0pYyuwwRwaZV oqolHDqIjuOHpVYoelswCJx/yClBkGbs80rm X-Google-Smtp-Source: ABdhPJxiE76x4QVg2jVnciAz0+uzEe0dqiKYHTxQjOdIDRUEWlxNnPjR0ciFnH3HDLHPupvSRbP8Lw== X-Received: by 2002:a63:5014:: with SMTP id e20mr12137620pgb.152.1611193677980; Wed, 20 Jan 2021 17:47:57 -0800 (PST) Received: from macbook-2.local (c-71-238-26-71.hsd1.or.comcast.net. [71.238.26.71]) by smtp.gmail.com with ESMTPSA id u1sm3462261pjr.51.2021.01.20.17.47.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 20 Jan 2021 17:47:56 -0800 (PST) To: freebsd-current@freebsd.org From: Michael Dexter Subject: FreeBSD 13.0 Build Option Sweep Message-ID: Date: Wed, 20 Jan 2021 17:47:51 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4DLldr0sy8z4cR2 X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.82 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[callfortesting-org.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-1.00)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RBL_DBL_DONT_QUERY_IPS(0.00)[2607:f8b0:4864:20::529:from]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RECEIVED_SPAMHAUS_PBL(0.00)[71.238.26.71:received]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.52)[-0.524]; R_DKIM_ALLOW(-0.20)[callfortesting-org.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; DMARC_NA(0.00)[callfortesting.org]; RCPT_COUNT_ONE(0.00)[1]; SPAMHAUS_ZRD(0.00)[2607:f8b0:4864:20::529:from:127.0.2.255]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::529:from]; R_SPF_NA(0.00)[no SPF record]; RCVD_TLS_ALL(0.00)[]; MAILMAN_DEST(0.00)[freebsd-current] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jan 2021 01:48:00 -0000 Hello all, I have been experimenting with FreeBSD build options on and off since FreeBSD 4.8/5.0 for use with minimum jails and later virtual machines. If you have ever tried to build "without all" and working your way back up, you have probably found this to be a very frustrating adventure in make-related failures after hours of compilation and, on the darkest days, concurrent deletion bugs which would give a different error every time you run a build. Fortunately, with the help of people like Ed Maste, Bryan Drewery, Bjoern Zeeb, Kyle Evans, and others, we have been gradually knocking broken build options off of the lists generated by the tools/tools/build_option_survey that PHK wrote long ago. An annotated list of working and failing build options in FreeBSD 13.0-ALPHA1 can be found here: https://callfortesting.org/results/bos-FreeBSD-13A1/ Two have been fixed and PRs exist for the majority of them with some possible fixes for those who know the code best to consider. One broken option is a recent regression while one pair, WITHOUT_LIBTHR/WITHOUT_LIBPTHREAD is quite stale and is a candidate for significant attention or possibly removal. If you are wondering, as of 13.0-ALPHA1, the following KERNCONF and generated /usr/src.conf are the minimum to build FreeBSD and build it in a bhyve VM from a UFS-formatted disk image: cpu HAMMER ident LESSBSD makeoptions MODULES_OVERRIDE="virtio" options SCHED_ULE device pci device loop device ether device uart device atpic device ahci device scbus options GEOM_PART_GPT options FFS sh /usr/src/tools/tools/build_option_survey/listallopts.sh \ | grep -v WITH_ | sed 's/$/=YES/' | \ grep -v WITHOUT_AUTO_OBJ | \ grep -v WITHOUT_UNIFIED_OBJDIR | \ grep -v WITHOUT_CRYPT | \ grep -v WITHOUT_DYNAMICROOT | \ grep -v WITHOUT_LIBCPLUSPLUS | \ grep -v WITHOUT_INSTALLLIB | \ grep -v WITHOUT_LIBTHR | \ grep -v WITHOUT_LIBPTHREAD | \ grep -v WITHOUT_BOOT | \ grep -v WITHOUT_LOADER_LUA | \ grep -v WITHOUT_LOCALES | \ grep -v WITHOUT_ZONEINFO | \ grep -v WITHOUT_VI \ > /etc/src.conf Explanation/Status: WITHOUT_AUTO_OBJ and WITHOUT_UNIFIED_OBJDIR belong in src-env.conf and kindly instantly warn you of this and terminate the build. WITHOUT_DYNAMICROOT and WITHOUT_LIBCPLUSPLUS are fixed in CURRENT. WITHOUT_INSTALLLIB and WITHOUT_LIBCPLUSPLUS should be easy to fix and candidate syntax is in the PRs linked in the above link. WITHOUT_CRYPT has regressed in recent months. WITHOUT_LIBTHR and WITHOUT_LIBPTHREAD are challenges. WITHOUT_BOOT onward are optional to build but are needed to boot the VM, see a console, set the time zone, and optionally edit files. The resulting kernel is 5M in size and the world and kernel are 90M. Basic networking adds another 1M. The build times on an EPYC 7402p are: buildworld 1m43.34s Warm ARC: 1m33.73s buildkernel 9.35s installworld 18.75s installkernel 0.32s Total: 3m23.44s Boot time: About three seconds I sincerely hope that all build options worked at some point and, given how much progress has been made, FreeBSD 13.0 can also support all options, or at a minimum, abort the build early as appropriate as the src-env.conf ones do. Think of the Developers! Spare them continued frustration with these. We can do this. I am happy to test any patches on multiple platforms. I am also happy to send individuals my minimum VM script and fortunately, it is out-of-date with every build option fix. All the best, Michael