Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 14 Aug 2013 19:55:25 -0500
From: Strake <strake888@...il.com>
To: musl@...ts.openwall.com
Subject: Re: Build system adjustments for subarchs

On 13/08/2013, Rich Felker <dalias@...ifal.cx> wrote:
> The current system searches for arch-specific asm in this order:
>
> 1. $(ARCH)$(ASMSUBARCH)/%.s, where ASMSUBARCH for the default subarch
>    is not blank but rather a unique suffix (for plain arm, it's "el").
>    This allows having asm that applies only to the default subarch but
>    not others.
>
> 2. $(ARCH)/%.s, for shared asm used by all subarchs.
>
> 3. %.c, the C fallback (which is empty for code that cannot be
>    implemented at all in C).

Another option:

Each arch has properties, which each take a value in a set; these sets
are mutually exclusive, and all the values in each set have the same
length. The properties have a well-defined order. The build system
parses each directory name as an arch name and a list of properties,
and chooses the most specific match; if no match, it uses the C code.

> Unfortunately, this still provides no way to include asm that's used
> by both soft and hardfloat little-endian, or both little- and
> big-endian hardfloat, without having, for example:
>
> - armel/%.s and armhf/%.s as duplicate files or symlinked
> - armhf/%.s and armebhf/%.s as duplicate files or symlinked

Thus arm would have 2 properties:
byte order ∈ { "eb", "el" }
float hardness ∈ { "hf", "sf" }

asm used by both soft- and hard-float little-endian: armel/%.s
asm used by both little- and big-endian hard-float: armhf/%.s
asm used by little-endian hard-float: armelhf/%.s

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.