Removal of NWFPE in its entirety, and VFP emulation code

Imre Kaloz kaloz at openwrt.org
Thu Apr 11 14:37:00 EDT 2013


On Wed, 10 Apr 2013 21:02:33 +0200, Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:

> On Wed, Apr 10, 2013 at 02:58:57PM -0400, Nicolas Pitre wrote:
>> On Wed, 10 Apr 2013, Russell King - ARM Linux wrote:
>>
>> > On Wed, Apr 10, 2013 at 01:30:35PM -0400, Nicolas Pitre wrote:
>> > > On Wed, 10 Apr 2013, Russell King - ARM Linux wrote:
>> > >
>> > > > I have just committed a patch to remove the arch/arm/nwfpe code from
>> > > > the kernel, and the VFP code emulating the FP operations.
>> > > >
>> > > > This I have done after it has been brought to my attention by the OSADL's
>> > > > GPL-violations project that the license for the softfloat library is
>> > > > incompatible with GPLv2.  This is because the FSF have ruled that
>> > > > indemnification clauses consitute an "additional restriction" which is
>> > > > incompatible with the GPLv2 section 6.  NWFPE contains the softfloat
>> > > > library, and VFP's emulation code is a derivative of softfloat.
>> > > >
>> > > > This will be very disruptive for ARMv4 and ARMv5 CPUs, which will no
>> > > > longer be able to run userspace with NWFPE support removed.  A possible
>> > > > solution there is to resurrect FASTFPE support and merge that into
>> > > > mainline in place of NWFPE.  FASTFPE's hooks are all present in the
>> > > > kernel, and it should just be a case of adding the FASTFPE code.
>> > > > However, FASTFPE is probably lacking GDB and signal stack support.
>> > > > (FastFPE's per-thread workspace is different from NWFPE.)
>> > >
>> > > A point worth mentioning is the EABI availability since 2006 which moved
>> > > away from FPA completely. A soft-float library in user space is used in
>> > > that case.  Major ARM binary producers including all ARM distros moved
>> > > to EABI with user space soft-float since then as it is order of
>> > > magnitude faster than FPA emulation.  So 99.99% of ARMv4 and ARMv5 users
>> > > are unlikely to be affected.
>> > >
>> > > So another option here might imply deprecating OABI support entirely,
>> > > given that it is useless without FPA and people keeping current with the
>> > > latest kernel are very likely to already use EABI user space.
>> >
>> > Unfortunately, I _still_ can't move off OABI.
>>
>> How can this be helped?
>
> I don't think there is a solution - as StrongARM is ARMv4 without Thumb
> support, which means that it's incompatible with EABI which uses bx and
> blx instructions.

May I ask, if you do LFS or are you using some existing distro? Is patching [1] your toolchain a no-go?


Imre


[1]
https://dev.openwrt.org/browser/trunk/toolchain/gcc/patches/4.7-linaro/830-arm_unbreak_armv4t.patch
https://dev.openwrt.org/browser/trunk/toolchain/gcc/patches/4.7-linaro/840-armv4_pass_fix-v4bx_to_ld.patch



More information about the linux-arm-kernel mailing list