Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 19 Sep 2019 09:25:39 -0400
From: Rich Felker <dalias@...c.org>
To: info@...ile-stream.com
Cc: musl@...ts.openwall.com
Subject: Re: [PATCH] mips: add single-instruction math functions

On Thu, Sep 19, 2019 at 09:14:37AM -0400, Rich Felker wrote:
> On Thu, Sep 19, 2019 at 03:54:31PM +0300, info@...ile-stream.com wrote:
> > It is probably possible to build soft-float ARMv6 musl with LDRD and
> > let it crash on XScale v5TE system due to stricter alignment
> > requirements. Does musl prevent this with whatever ldsonames? I
> > think not.
> 
> No, because the ABI is the same and you can run armv6 and armv5
> binaries using the same libc.so/ldso.
> 
> > And if the kernel would reject such binary (dunno), why are you
> > against external nan2008 enforcement then?
> > 
> > Finally, I believe it is possible to build mips32r2 binary with
> > rotate instructions and let it fail silently and strangely on r1
> > system (rotate opcode reuses one of the shift opcodes) as kernel
> > apparently ignores the corresponding flag in the ELF header. This
> > seems to be the only case of three you want to fix.
> 
> This isn't about noisy or silent failure of binaries using new ISA
> features on old cpus. It's about the inability to use a
> baseline-supporting libc.so/ldso on a newer cpu with the changed ISA,
> for binaries built with the changed ISA.

The closest analogy to the mips situation might be arm where there are
separate branches of baseline ISA: armv4t, and the intersection of
armv7-a and armv7-m (called just armv7?). Here, there's currently no
way to make a single baseline ISA libc.so that can run on everything
just because armv4t lacks thumb2 and armv7-m lacks arm (the 32-bit arm
ISA). This is unfortunate but might be fixable if we ever get to the
point where building as thumb1 is supportable, but would break again
if we wanted to add plain armv4 (non-t) support (EABI doesn't specify
this but can be extended in a non-incompatble way).

I don't think the arm situation is an exact analogy since it does not
have completely disconnected components in the compatibility graph. It
just has 2 roots.

I bring this up because my last email was probably too long, and the
point here is not "rejecting abs2008/nan2008 without a new ldsoname"
but rather highlighting that there are issues that were never
discussed, and that might have already created a big mess in the wild,
and figuring out what if anything needs to be done about it. This
discussion should have happened a long time ago, and didn't, at least
not with musl.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.