Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 4 May 2014 14:56:49 +0100
From: Justin Cormack <justin@...cialbusservice.com>
To: musl@...ts.openwall.com
Subject: Re: thumb2 support

On Sun, May 4, 2014 at 1:01 PM, Rich Felker <dalias@...c.org> wrote:
> On Sun, May 04, 2014 at 12:54:40PM +0100, Justin Cormack wrote:
>> On Wed, Apr 30, 2014 at 8:03 PM, Rich Felker <dalias@...c.org> wrote:
>> > On Tue, Apr 29, 2014 at 06:09:14PM +0200, Wermut wrote:
>> >> Hi
>> >>
>> >> I have tested the patch from Stephen Thomas at least for gcc 4.6, 4.7
>> >> and 4.8. Seems to work. Would be nice if the 1.1.1 release will
>> >> include a fix.
>> >
>> > It only works for armv7. On armv6k, I'm getting errors that the
>> > instructions aren't supported. I think we could simply add !thumb as a
>> > condition for the whole block...
>>
>> The patch has the wrong conditional in, there are no standard
>> __thumb__ and __thumb2__ defines, it is __ARM_ARCH_ISA_THUMB being 1
>> or 2 that differentiates. armv6k does not support thumb2. I should
>> have enough machines of different flavours to make a working patch.
>
> I don't see __ARM_ARCH_ISA_THUMB getting defined at all (gcc 4.7.1) so
> it doesn't seem reliable. __THUMBEL__ is defined in thumb mode
> (presumably the EL is for little endian?) but that's the only thing
> I'm getting that seems relevant other than __thumb__.

I was wrong, sorry, __thumb__ and __thumb2__ are defined. Maybe
__ARM_ARCH_ISA_THUMB does seem to be not defined always.

>> We should be able to support just using thumb2, for thumb 1 I guess we
>> can support a mixed mode with some files like this compiled for arm
>> only, but the rest compiled with thumb, with interop turned on. Not
>> sure how messy this will turn out to be.
>
> armv6 does not seem to have thumb2, does it? And for armv7 I think it
> should be reasonable to assume any thumb support is thumb2. Is this
> wrong? Aside from the question of the macro name, I think the current
> patch covers all cases that can be covered. (BTW as far as I can tell
> there's no good reason to ever compile with -mthumb for pre-v7, but it
> doesn't hurt to support it. All the asm is arm mode anyway, so -mthumb
> doesn't get you the ability to run on obscure hardware that's
> thumb-only unless you rewrite all the asm too.)

Some armv6 machines have thumb2, but not many (ARMv6T2 apparently, I
don't have one I don't think). All v7 machines do have (only) thumb2.
So you could test ARM_ARCH_6T2 or __thumb2__.

Alternatively it seems you can compile with -Wa,-mimplicit-it=always
and you don't need the patch at all. That could make it easier in
future.

So far all the thumb2-only hardware has no MMU, so less likely to be
using musl...

Justin

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.