From owner-freebsd-hackers@freebsd.org Mon Aug 10 07:26:19 2015 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C092D99E455 for ; Mon, 10 Aug 2015 07:26:19 +0000 (UTC) (envelope-from jordanhubbard@me.com) Received: from nk11p03mm-asmtp001.mac.com (nk11p03mm-asmtpout001.mac.com [17.158.232.236]) (using TLSv1.2 with cipher DHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A7890122; Mon, 10 Aug 2015 07:26:19 +0000 (UTC) (envelope-from jordanhubbard@me.com) Received: from [10.20.30.57] (75-101-82-48.static.sonic.net [75.101.82.48]) by nk11p03mm-asmtp001.mac.com (Oracle Communications Messaging Server 7.0.5.35.0 64bit (built Mar 31 2015)) with ESMTPSA id <0NSU00BL5VARE340@nk11p03mm-asmtp001.mac.com>; Mon, 10 Aug 2015 07:25:44 +0000 (GMT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.14.151,1.0.33,0.0.0000 definitions=2015-08-09_02:2015-08-07,2015-08-09,1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1412110000 definitions=main-1508100121 Content-type: text/plain; charset=utf-8 MIME-version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: Sparc64 support From: Jordan Hubbard In-reply-to: Date: Mon, 10 Aug 2015 00:25:40 -0700 Cc: Dimitry Andric , Bill Sorenson , "freebsd-hackers@freebsd.org" , Kevin Bowling , "K. Macy" Content-transfer-encoding: quoted-printable Message-id: References: <20150809215403.GC20238@server.rulingia.com> <6C12EBFE-EAA9-4C12-9F03-1CB2C28C4A6E@me.com> <51EEBC6E-5D85-439D-874D-D223EE045515@me.com> <926DDA42-8883-4AB4-B229-D44387FF5C6B@me.com> To: Adrian Chadd X-Mailer: Apple Mail (2.2104) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Aug 2015 07:26:19 -0000 > On Aug 9, 2015, at 11:03 PM, Adrian Chadd = wrote: >=20 > poke dim and the other compiler-y people. They have a plan, and it's > about time we started the deorbit. :) Well seriously though, let=E2=80=99s also take this opportunity to clean = things up with the build process and maybe also some of the release bits = too, since they=E2=80=99re fairly intrinsically tied together. I tried doing a =E2=80=9Cmake release=E2=80=9D in /usr/src today, = harkening back to the days when I was Release Engineer for FreeBSD and = that single command was all one needed to get a .iso image and some boot = floppy / QIC tape suitable media (!) for the i386. Obviously there are = more release products now, from single disc ISOs to DVDs to USB boot = device installers, and I quickly saw that all of these various targets = had moved into /usr/src/release (OK, that seems reasonable) but even = then, and after reading /usr/src/release/Makefile, I could not get = =E2=80=9Cmake cdrom=E2=80=9D to work. Looking at = https://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/release-build.= html references a script that doesn=E2=80=99t even exist anymore, so the = docs are clearly out of date. My point, and I do have one, is that while we=E2=80=99re cleaning things = up, and I think we should, there should be some clear goals to what = we=E2=80=99re doing: 1. The =E2=80=9Cbuildworld, buildkernel and release=E2=80=9D targets = should DTRT with a known and documented set of target switches like = TARGET_ARCH and whatever else is deemed =E2=80=9Cminimally necessary=E2=80= =9D to cross-build, or self-host for that matter, on any given platform. = Where self-hosting is the scenario, the defaults should also be set = reasonably enough to make those build targets Just Work with a minimum = [absence] of superfluous decorative flags or variables. In short, the Principle Of Least Astonishment is an excellent guiding = principle to follow and the minute someone says =E2=80=9Cwell, it=E2=80=99= s totally obvious how to build for the beagleboner 9000, you just go to = http://www.4chan.org/os-stuff/giggle/he-said-boner/davesdocs/howtomakefree= bsd.html and follow the instructions there after also customizing the = first 30 lines of the whiffle.sh script=E2=80=9D, we should be allowed = to kill them and eat their liver with some fava beans and a nice = chianti. Then we should automate it and document it on our own web = site. 2. We need to define what the targeted architectures are for =E2=80=9Croun= d one=E2=80=9D of this because reading = https://www.freebsd.org/doc/en_US.ISO8859-1/articles/committers-guide/arch= s.html is only partially enlightening. According to that, only i386 and = amd64 are tier 1 and tier 2 are ARM, pc98 (really??), powerpc and = sparc64. In Tier 3, in a lonely classification all by itself, is mips. = Even if we adopt all of them, which of those require an external = toolchain and which will build with the current clang? If you read = papers like = http://llvm.org/devmtg/2014-04/PDFs/LightningTalks/2014-3-31_ClangTargetSu= pport_LighteningTalk.pdf you could easily develop the impression that = even its own developers aren=E2=80=99t so sure, but I=E2=80=99m guessing = we have a bit better of an idea than that, no? 3. We need to collect all of the cross-building voodoo in one place and = then set about encoding it into the Makefiles such that even a = reasonably intelligent golden retriever can build one or all of the = supported target architectures. For extra credit, they should also be = able to pop out an installation image for it since the Release Engineer = often has better things to do than build custom images for folks, but = that=E2=80=99s also the only way to really TEST anything so =E2=80=9Cself = service=E2=80=9D should definitely be possible and even sort of fun. 4. We need to de-orbit gcc as previously discussed since nobody can = claim that this is regressive motion if there is a plan for the 88000 = and i860 ports and they even work better than they did before. I have a lab (several actually). I have engineers. How can we help. - Jordan