ARMv8 Tool Support

Joel Sherrill joel at rtems.org
Thu Feb 25 23:46:45 UTC 2016


Hi

After bouncing some email with Richard Earnshaw, I learned that ARMv8
support entails two parts:

+ additional instructions/FPUs in 32-bit support
+ new 64-bit mode

>From a tools perspective, the new 64-bit mode is easy. It results in a a
new
target named aarch64-rtems. I have posted patches to add that to binutils
and gcc.

The 32-bit mode additions are more complicated because they result in
the need for multilibs. I noticed that config/arm/t-elf in gcc does not
include
v8 multilibs but config/arm/t-aprofile does. I did an experiment and swapped
our config/arm/t-rtems with config/arm/t-aprofile. The resulting multilib
variants
are attached.

There were 12 before and 28 after. Six were new v8 so that explains some.
I didn't try to decipher or match up the rest.

I noticed we currently have "eb" which if indicative of big endian doesn't
match how the other arm targets handle big vs little endian. They use a
separate target to get big endian.

My (possibly faulty) recollection is that our gcc multilib variants are
down
selected to only include exactly what we have BSPs for. On other targets,
we just use the same as the default elf/eabi toolchain. This always left
the tools foundation ready for any supported CPU model or BSP.

We should add ARMv8 multilibs to lay the groundwork for folks to add
BSPs to RTEMS.. Do we do it by switching from t-rtems to t-aprofile?

--joel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20160225/9312f9f4/attachment.html>
-------------- next part --------------
Before (using t-rtems)
======================
./lib/libc.a
./lib/thumb/libc.a
./lib/thumb/armv7-r/libc.a
./lib/thumb/armv7-r/vfpv3-d16/hard/libc.a
./lib/thumb/armv7-a/neon/hard/libc.a
./lib/thumb/armv7-a/libc.a
./lib/thumb/armv7-m/libc.a
./lib/thumb/armv7-m/fpv4-sp-d16/hard/libc.a
./lib/thumb/armv6-m/libc.a
./lib/thumb/cortex-m7/fpv5-d16/hard/libc.a
./lib/eb/thumb/armv7-r/libc.a
./lib/eb/thumb/armv7-r/vfpv3-d16/hard/libc.a

After (using t-aprofile)
========================
./lib/v7-a/libc.a
./lib/v7-a/simdv1/hard/libc.a
./lib/v7-a/simdv1/softfp/libc.a
./lib/v7-a/fpv3/hard/libc.a
./lib/v7-a/fpv3/softfp/libc.a
./lib/libc.a
./lib/thumb/v7-a/libc.a
./lib/thumb/v7-a/simdv1/hard/libc.a
./lib/thumb/v7-a/simdv1/softfp/libc.a
./lib/thumb/v7-a/fpv3/hard/libc.a
./lib/thumb/v7-a/fpv3/softfp/libc.a
./lib/thumb/libc.a
./lib/thumb/v7ve/fpv4/hard/libc.a
./lib/thumb/v7ve/fpv4/softfp/libc.a
./lib/thumb/v7ve/libc.a
./lib/thumb/v7ve/simdvfpv4/hard/libc.a
./lib/thumb/v7ve/simdvfpv4/softfp/libc.a
./lib/thumb/v8-a/libc.a
./lib/thumb/v8-a/simdv8/hard/libc.a
./lib/thumb/v8-a/simdv8/softfp/libc.a
./lib/v7ve/fpv4/hard/libc.a
./lib/v7ve/fpv4/softfp/libc.a
./lib/v7ve/libc.a
./lib/v7ve/simdvfpv4/hard/libc.a
./lib/v7ve/simdvfpv4/softfp/libc.a
./lib/v8-a/libc.a
./lib/v8-a/simdv8/hard/libc.a
./lib/v8-a/simdv8/softfp/libc.a



More information about the devel mailing list