Thanks, Lance, for backing me up here and for shedding further light on the issue.
I wondered why Waldemar is asking so much about use of floating point, so I double-checked
the kernel. It is indeed compiled with "CONFIG_CPU_R4K_FPU=y", but during boot
it will figure out that there's no H/W FPU support on the actual CPU and therefore not
push/pop FPU regs during task switches.
How it resorts to doing soft-float is not crystal clear to me.
I looked at the changeset you mentioned, Waldemar
(2636b17616a19d628c3dbc373ebae67ef6e2b1f6), to get an idea why you are so keen to know
about floating point.
Then I modified .../libc/string/mips/memcpy.S to see which macros were defined and which
were not. I got to this conclusion:
ANDROID_CHANGES undefined
_LIBC defined
_MIPS_ISA_MIPS32 defined
DISABLE_PREFETCH undefined, so USE_PREFETCH gets defined
_MIPS_SIM undefined
USE_DOUBLE remains undefined
L defined
PTR_ADDIU defined
PTR_SRA defined
PTR_LSA undefined, but gets defined to lsa
Hope it points in the right direction.
Thanks,
René
-----Original Message-----
From: Lance Fredrickson [mailto:lancethepants@gmail.com]
Sent: 26. april 2016 16:18
To: Rene Nielsen <rene.nielsen(a)microsemi.com>
Subject: Re: [uclibc-ng-devel] memmove() is failing on MIPS CPU
I've also experienced the same issues described by Rene. Up until now I've been
applying the patches that entware-ng/optware-ng use which revert the mipsel changes
between 1.0.9 and 1.0.10.
Without Rene's patch, or reverting those mipsel commits, Rene's test.c fails to
run, and experiences same error's he experiences.
With his patch it is working as expected.
Note: with or without patching, the static "test" binary I make works with qemu
on x64_86 machine. It's only when I run it on the actual mipsel hardware that it
fails. So testing with qemu for whatever reason is not an indication in this case of how
it will work on the actual hardware.
kernel 2.6.22.19
binutils 2.25.1
gcc 5.3.0
mips32 soft-float
I'm working with routers like entware-ng/optware-ng, so am also stuck on the same
kernel they are. I know entware-ng is using cross-tools-ng for their toolchain. I am
using buildroot for mine.
thanks,
Lance