From owner-freebsd-hackers@freebsd.org Mon Aug 10 05:54:41 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 69FFB99E278 for ; Mon, 10 Aug 2015 05:54:41 +0000 (UTC) (envelope-from jordanhubbard@me.com) Received: from nk11p03mm-asmtp002.mac.com (nk11p03mm-asmtpout002.mac.com [17.158.232.237]) (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 530AE3CB; Mon, 10 Aug 2015 05:54:41 +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-asmtp002.mac.com (Oracle Communications Messaging Server 7.0.5.35.0 64bit (built Mar 31 2015)) with ESMTPSA id <0NSU0013AR2DID50@nk11p03mm-asmtp002.mac.com>; Mon, 10 Aug 2015 05:54:16 +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-1508100107 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: Sun, 09 Aug 2015 22:54:13 -0700 Cc: 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 05:54:41 -0000 > On Aug 9, 2015, at 10:11 PM, Adrian Chadd = wrote: >=20 > It's supposed to be (for mips): >=20 > pkg install mips-gcc mips-xtoolchain > make ... CROSS_TOOLCHAIN=3Dmips-gcc ... >=20 > .. however there are loose ends to fix that prevent that from working > out of the box. OK, so here=E2=80=99s what I would propose (and I would even, gulp, be = willing to toss a little engineering resources at it if it makes it = actually happen): 1. We add some sort of arch-bootstrap rule to /usr/src/Makefile which = does the following: 1a. If TARGET_ARCH is one of the =E2=80=9Cclang supported=E2=80=9D= architectures, it sets some =E2=80=9Cuse internal compiler=E2=80=9D = flags and declares an early victory. Go to step 1d. 1b. If TARGET_ARCH is one of those =E2=80=9CNo one can explain = to Adrian just how this even works=E2=80=9D then it just falls out of = -current until someone can do steps 1b and 1d. 1c. If TARGET_ARCH is one of the =E2=80=9Cexternal toolchain=E2=80= =9D supported architectures then it does the appropriate ``pkg info = blah'' introspection to see if the appropriate toolchain is already = installed, and if so, we go to step 1d. Otherwise, it goes =E2=80=9CBleah= ! You must: pkg install 6502-weird-ancient-gcc 6502-apple][-runtime=E2=80= =9D and aborts, so the user can then make the determination about = whether to cruft up their build machine with those packages and retry = the operation. 1d. All of the appropriate COMPILER_FOO variables are set to = compile for TARGET_ARCH and away we go. 2. Having done #1, we de-orbit the base version of gcc and let clang = take its rightful place as the only =E2=80=9Cinternal compiler=E2=80=9D = supported in base. None of the weird architecture folks can complain = that we just broke -current for them because the arch-bootstrap rule = will do all the right things for their architecture (or if it doesn=E2=80=99= t, they know what to hack until it does) and steer the user in the = direction of the appropriate package(s). Am I missing anything? Is it really that obvious? It seems I must be = missing something if this is truly just a 2 step process. :) - Jordan