future of sparc64
nwhitehorn at freebsd.org
Mon Oct 23 15:56:03 UTC 2017
On 10/22/17 22:48, Ngie Cooper (yaneurabeya) wrote:
>> On Oct 22, 2017, at 22:47, Ngie Cooper (yaneurabeya) <yaneurabeya at gmail.com> wrote:
>>> On Oct 10, 2017, at 14:14, Marius Strobl <marius at freebsd.org> wrote:
>>> On Sat, Oct 07, 2017 at 12:41:24PM -0500, Mark Linimon wrote:
>>>> 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.
>>> 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.
>> 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.
> … and yes, this can be interpreted as “I will do it as long as people don’t bikeshed me to death on the idea”.
I'm not quite sure what is being suggested, but the core problem with
this particular thing is that you can't build ports without a toolchain,
so there's a catch-22. The only way to break that involves packages --
which we don't tend to provide on the architectures that have the problem!
bapt has done some work on getting this to happen (the base/ ports), but
the base/gcc port is both out-of-date and doesn't seem to build anymore,
which is where I am currently stuck. Any help with that would be really
More information about the freebsd-sparc64