mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Andre McCurdy <armccurdy@gmail.com>
To: musl@lists.openwall.com
Subject: Re: clz instruction is unavailable for Thumb1
Date: Tue, 27 Feb 2018 19:00:58 -0800	[thread overview]
Message-ID: <CAJ86T=W95GF2U-Qs4D04abnoXwdkPQih0MwDAOQwPZv3uW7XBA@mail.gmail.com> (raw)
In-Reply-To: <20180228021641.GT1436@brightrain.aerifal.cx>

On Tue, Feb 27, 2018 at 6:16 PM, Rich Felker <dalias@libc.org> wrote:
> On Tue, Feb 27, 2018 at 05:26:13PM -0800, Andre McCurdy wrote:
>> On Tue, Feb 27, 2018 at 5:01 PM, Rich Felker <dalias@libc.org> wrote:
>> > On Tue, Feb 27, 2018 at 04:37:15PM -0800, Andre McCurdy wrote:
>> >> On Tue, Feb 27, 2018 at 4:03 PM, Zhao, Weiming <weimingz@codeaurora.org> wrote:
>> >> > In arch/arm/atomic_arch.h, it checks for __ARM_ARCH >= 5, which is not
>> >> > sufficient.
>> >> >
>> >> > for example, for armv6-m, it only support Thumb1, which doesn't include clz.
>> >> >
>> >> > Suggest to check if it's building for thumb1:
>> >>
>> >> Musl does not currently support Thumb 1.
>> >
>> > I forget what the situation with v6-m is, and whether/how it could be
>> > supportable. Is it really thumb1 or some thumb2 subset that fills
>> > deficiencies?
>>
>> It's Thumb1 plus BL, DMB, DSB, ISB, MRS and MSR from Thumb2.
>
> So that covers barrier but not atomics or thread pointer or syscalls,
> right?

Thumb1 can make syscalls, but armv6-m has no atomics (the RTOS style
alternative being to disable interrupts around critical sections) and
no thread pointer (no coprocessors at all).

> I'm not seeing how arm with only thumb1 plus the above can be a
> viable platform musl could run on, but maybe there are some kernel
> mechanisms to help..?

I don't know if it's even possible to run a Linux kernel on these devices.

>> > My recollection was that thumb1 lacks atomics, barriers,
>> > thread-pointer loading, and maybe even syscalls, and since the
>> > kuser_helper addresses are arm addresses, you can't even use them to
>> > get the missing functionality.
>> >
>> > Rich
>> >
>> >> > diff --git a/arch/arm/atomic_arch.h b/arch/arm/atomic_arch.h
>> >> > index c5c56f8..e3cb66a 100644
>> >> > --- a/arch/arm/atomic_arch.h
>> >> > +++ b/arch/arm/atomic_arch.h
>> >> > @@ -82,7 +82,7 @@ static inline void a_crash()
>> >> >                 : : : "memory");
>> >> >  }
>> >> >
>> >> > -#if __ARM_ARCH >= 5
>> >> > +#if __ARM_ARCH >= 5 && !(defined(__thumb__) && !defined(__thumb2))
>> >> >


  reply	other threads:[~2018-02-28  3:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-28  0:03 Zhao, Weiming
2018-02-28  0:37 ` Andre McCurdy
2018-02-28  1:01   ` Rich Felker
2018-02-28  1:26     ` Andre McCurdy
2018-02-28  2:16       ` Rich Felker
2018-02-28  3:00         ` Andre McCurdy [this message]
2018-02-28 10:43           ` Szabolcs Nagy
2018-02-28  3:56     ` Khem Raj

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJ86T=W95GF2U-Qs4D04abnoXwdkPQih0MwDAOQwPZv3uW7XBA@mail.gmail.com' \
    --to=armccurdy@gmail.com \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).