Date: Mon, 30 Oct 2017 01:38:15 -0700 From: "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com> To: Marius Strobl <marius@freebsd.org> Cc: Mark Linimon <linimon@lonesome.com>, "A. Wilcox" <AWilcox@Wilcox-Tech.com>, Gerald Pfeifer <gerald@pfeifer.com>, freebsd-sparc64@FreeBSD.org, freebsd-arch@freebsd.org Subject: Re: future of sparc64 (was: Making C++11 a hard requirement for FreeBSD) Message-ID: <B4C63F25-0169-4E44-A9FD-52615149DBFE@gmail.com> In-Reply-To: <20171023203952.GB51868@alchemy.franken.de> References: <CANCZdfq5=KRp4NYKsc15gyS9C7CxrBFxcKQLPwnb_0oPb15vJw@mail.gmail.com> <20171005234149.GE8557@spindle.one-eyed-alien.net> <59D6CA6C.1040502@Wilcox-Tech.com> <20171007174124.GA20810@lonesome.com> <20171010211428.GA51868@alchemy.franken.de> <CB71FA85-BBE1-4633-990C-4AB10A91D071@gmail.com> <20171023203952.GB51868@alchemy.franken.de>
next in thread | previous in thread | raw e-mail | index | archive | help
--Apple-Mail=_0E8A217C-E1ED-42DE-BD64-A66B5FF8FD14 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On Oct 23, 2017, at 13:39, Marius Strobl <marius@freebsd.org> wrote: >=20 > On Sun, Oct 22, 2017 at 10:47:03PM -0700, Ngie Cooper (yaneurabeya) = wrote: >>=20 >>> On Oct 10, 2017, at 14:14, Marius Strobl <marius@freebsd.org> wrote: >>>=20 >>> On Sat, Oct 07, 2017 at 12:41:24PM -0500, Mark Linimon wrote: >>>>=20 >>>> All gccs > 4.9 fail to build. Looking at the logs AFAICT the = failure >>>> is a floating-point exception as soon as the first built binary is = run >>>> during the internal testing. >>>=20 >>> The most plausible cause for that is executables and/or dynamic = libraries >>> not installing the user trap handlers as specified by the libc 64 = psABI, >>> i. e. not call __sparc_utrap_setup(). Do the ports GCCs use their = own CRT >>> nowadays? Do they no longer link libc last? Please provide their = linker >>> invocation. Also, please provide the backtrace of a minimal program >>> exhibiting that problem. >>=20 >> An idea occurred to me (after having dealt with building things over, = and over, and over, this weekend): since we can?t rely on the ABI on = ^/head to be stable, why don?t we produce working dynamic/static = toolchains on HEAD-1 in ports, then require them for the areas that = can?t bootstrap (yet, or at all?) with clang? We?ve already done that = with some of our code that?s been deorbited from base (like rsh, etc). I = don?t see why making a toolchain based on a stable ABI for architectures = that will migrate or will be killed off needs to be a huge undertaking = (politically), and needs to hold us back from making progress using a = compiler that implements an almost 7 year old C++ spec. >=20 > To be honest, I've no idea what your proposal has to do with the = above, > what it actually is about or why rsh(1) would be a viable example in > this case given that rsh(1) hardly is a bootstrapping tool. However, > ABI changes (the above wasn't about a change in ABI, btw.) are just > one good example why an external toolchain would be a PITA as system > compiler. Think of when we e. g. turned on TLS in the base compiler > configurations after having added TLS support to rtld(1). The next > buildworld ensured that not only the compiler used TLS, but also that > an rtld(1) capable of TLS will be in place. Now with a similar future > change and an external toolchain built on HEAD - 1, some additional > magic would be needed to ensure that binaries built for HEAD use the > expected ABI and all HEAD components are in sync. >=20 > Generally, I'm fine with moving to an external toolchain for the > system compiler, but only if it will also be the default for x86 > so the life of tier-2 architectures won't become even harder - both > politically and technically - as it is now. (Replying to single-message in thread, since the rest seem to follow the = same flow of expressed confusion) Distilling down my scatterbrained message before: I was suggesting = building a cross-compiler with an appropriate target/host tuple as a = package, then allowing users to install that package, instead of = building the toolchain from scratch every time. This is what you = suggested is being worked on by bapt@. Someone should have realized that gcc 4.2.1 is a dead end at the point = anyhow, and clang will need to be bootstrapped from a c++11 capable = compiler (which gcc 4.2.1 is not by any means), right? Which means that = making binary packages work for the toolchain is a must for 2nd tier = architectures if clang is the target compiler (MK_CLANG_BOOTSTRAP=3D=3Dyes= ), which is the eventual end-goal. Cheers, -Ngie --Apple-Mail=_0E8A217C-E1ED-42DE-BD64-A66B5FF8FD14 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE5bk3FaGcY5rvqmb79YOpJmkwhhUFAln25PcACgkQ9YOpJmkw hhXMyw//fRWmIsq7s/Mss/sFxhJcuofiGlFqbOqiMtztbEf5NUX+llTMolcSYL/d 5Hdcndc0mbGfNCaHr12Li6HKZlgsyJt2DPUmNPP86OB1gY9nWiUd0oVp+T/0tury AzwRI3yo9Q/ODQxAXw8j+eJWyVX+vEWw8lPflq4ziKw+s5aWKBPJe53EKd0CxvD4 CpMy2R0JoCdppNVyCBWU5jYMB4WbGSYNIIjINmObj0vmPsQKC6UDnOpOGe5jZ+3i b2+SGSYjEkXIoylGjFpu8V6/PnviRFEwb08+3dWuD4RNYeONA68+N+BAa0TQJMCm DSbjwOaFj2k+mgab7D44dfEiTI6p5ztokCfM/pStRBeSwOW9V0EZ2hk4ZVn8ezAV TZDZ+GTV+oKHzpHQdl9MrJEyiDn8FizgepA7KzEw6iVJ9LPjLTwkFs0STzmQkZbO tRtGiwXkkhJbiUXFJlhrFDFMefUyGhEq1/dgP1UqVmJCDMkTmYOcqp4V0AFtqEeY rYAaGaYeWZZIO44qhxaQxpWgZuZkpvH47rhUcV3iRv/Qtx1LpgDSL/TlNsb7jNQY bhluxWHkjUfr6FaiigVsGW+X+jhJsrUKb2CY6qxLyzRI+FPHlm+taO63sNDPrM0V H7nYXzFK3ut0JrDE8pnhW229dR6W8MM3Wr5t6AKxkK9WGXLbRLU= =0YG3 -----END PGP SIGNATURE----- --Apple-Mail=_0E8A217C-E1ED-42DE-BD64-A66B5FF8FD14--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B4C63F25-0169-4E44-A9FD-52615149DBFE>