Warner Losh
2016-01-12 04:27:14 UTC
Author: imp
Date: Sun Jan 3 04:32:05 2016
New Revision: 293068
URL: https://svnweb.freebsd.org/changeset/base/293068
Add libsoft to the tree, just like lib32.
Hmm, are there going to be more of these "multilib" things? :)Date: Sun Jan 3 04:32:05 2016
New Revision: 293068
URL: https://svnweb.freebsd.org/changeset/base/293068
Add libsoft to the tree, just like lib32.
there it may be more of a TARGET_ARCH thing, but libsoft might be useful.
to use this stuff MIPS turns out to be a harder nut to crack with this stuff
because it marks the different types of binaries differently and it looks harder
to parse.
For amv6 it is more of a transition thing, but I wanted to do it something
approaching âcorrectâ so that we could leverage it for MIPS.
We've also got a libcheri in CheriBSD and will eventually need to do a
lib64 as we explore the switch from CHERI-when-requested to
CHERI-by-default.
We should definitely chat about this. Thereâs some easy ways to mark the CHERIlib64 as we explore the switch from CHERI-when-requested to
CHERI-by-default.
binaries that are easier than others which would be quite helpful.
So we should chat about how this would be helpful on MIPS, and not just
CHERI-mips...
Warner
honestly, Iâd make it be multilib/${MACHINE_ARCH} so that lib could be a symlink there so
that most config scripts that simply know where things live can find them more easily. Since
we have a big legacy issue to cope with, Iâm having trouble seeing a clear path here. There
might be one, but I havenât connected all the dots in my headâŠ
Plus, MACHINE_ARCH likely isnât expressive enough. The armv6 kernels, for example, can
run either soft-float ABI or hard-float ABI programs equally well (which is why my hack works).
It is my belief that, when booted on a hardware capable processor, a mips kernel could do the
same thing. Thereâs no floats passed into the kernel for system calls, so the floating point part
of the ABI in use is simply irrelevant.
I wonder if someone has a good write-up on how this stuff is normally done on, say, Linux. My
google searches have found lots of entries about how to enable it, but not what the underlying
scheme really is or good docs on the architecture. This is one of the things that stalled what I
did for so long. But after seeing Brooks' talk on libcheri, I thought Iâd move forward with what I
have.
Warner