Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170218125301.GK12395@port70.net>
Date: Sat, 18 Feb 2017 13:53:01 +0100
From: Szabolcs Nagy <nsz@...t70.net>
To: Rob Landley <rlandley@...instruments.com>
Cc: musl <musl@...ts.openwall.com>
Subject: Re: musl-cross-make build script.

* Rob Landley <rlandley@...instruments.com> [2017-02-18 02:45:38 -0600]:
> On 02/17/2017 05:53 AM, Szabolcs Nagy wrote:
> > i didnt know about -j$(nproc), what does it do?
> 
> You answered your own question, but I note you can go "taskset 1
> ./thingy.sh" to do a single processor build with this. :)

nice


> >> for i in i686:: \
> >>          armv5l:eabihf:--with-arch=armv5t armv7l:eabihf:--with-arch=armv7-a \
> >>          "armv7m:eabi:--with-arch=armv7-m --with-mode=thumb --disable-libatomic --enable-default-pie" \
> >>          armv7r:eabihf:--with-arch=armv7-r \
> >>          armv8l:eabihf:--with-arch=armv8-a i486:: sh2eb:fdpic:--with-cpu=mj2 \
> >>          mipsel:: mips:: powerpc:: sh4:: microblaze:: mips64:: powerpc64:: \
> >>          s390x:: x86_64::
> > 
> > aarch64 is missing
> 
> In theory armv8l is what they used to call aaaarrcchh64 before they
> decided to stutter and pretend it wasn't arm or whatever that nonsense
> is. (I've done my best to ignore it.)
> 
> https://www.arm.com/products/processors/armv8-architecture.php
> 
> In practice I haven't tested that one yet and it looks like it's broken,
> have to figure out how to hit it with a rock...
> 
> (The armv7r target is also broken because it's nommu but not pie, need
> to tweak that...)
> 
> > (and i don't think it's useful to
> > build both armv7l and armv8l toolchains: the former
> > can produce binaries for armv8-a targets just fine
> 
> These are not multilib toolchains. If armv7l is 32 bit, armv8l is 64
> bit, they have different libgcc.a and so on...
> 
> > and i don't know about any code in the toolchain target
> > libs that would be different on armv8-a,
> 
> One is 32 bit, one is 64 bit?
> 

no,

in a triplet "armv8" means the armv8 architecture in
32bit execution state (which arm calls aarch32) and
that is backward compatible (and almost identical to)
armv7 (at least the -a profile, armv8-m and armv7-m
have more differences afaik)

in a triplet "aarch64" means the armv8 architecture in
64bit execution state.

so if you configure for armv8l-linux-musleabihf you
get a toolchain that follows a 32bit arm abi and uses
a 32bit arm isa (thumb or arm like with armv7).

the 64bit triplet is aarch64-linux-musl (there is no
soft float abi nor eabi suffix), there is an ilp32
abi for aarch64 which uses 64bit isa (like x32) which
is not supported by musl, and a bigendian variant
which can be configured with "aarch64_be" (but not
used in practice i think).

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.