[uclibc-ng-devel] memmove() is failing on MIPS CPU
rene.nielsen at microsemi.com
Tue Apr 26 19:27:51 CEST 2016
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:
DISABLE_PREFETCH undefined, so USE_PREFETCH gets defined
USE_DOUBLE remains undefined
PTR_LSA undefined, but gets defined to lsa
Hope it points in the right direction.
From: Lance Fredrickson [mailto:lancethepants at gmail.com]
Sent: 26. april 2016 16:18
To: Rene Nielsen <rene.nielsen at 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.
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.
More information about the devel