Age | Commit message (Collapse) | Author |
|
The attached patch adds support for compiling arm uClibc as pure Thumb code.
This is needed because some recent ARM codes do not implement traditional ARM
mode. Specifically:
* Cortex-M1 - An extremely minimal FPGA based core that only implements
Thumb-1 (aka ARMv6-M).
* Cortex-M3 - A Thumb-2 only ARMv7-M core.
Most of uClibc already builds in Thumb mode, all that is left are a handful of
assembly bits.
Tested on arm-uclinuxeabi.
|
|
I had clearly run search/replace on that were cluttering things up.
|
|
the archs fail
|
|
|
|
This patch changes all cases where the ARM assembler mov pc,rx
instructions are used to ensure that the thumb/arm interwork change of
process more works - in essence mov pc,rx needs to become bx rc.
The ldr pc or ldm rx, {pc} instructions are not changed - this is
fine on ARM >=v5 but will fail to restore thumb mode on ARM v4T,
i.e. this code will not provide support for thumb on ARM v4T.
One mov pc is left in resolve.S, this is fixed in a different patch -
thumb-resolve.patch
The changes are protected by __THUMB_INTERWORK__ - the original
mov instruction will work on newer architectures and is required on
arch v4 (not v4t) and earlier - those which did not support thumb -
so this is safe. See gcc lib1asmfuncs for a more exact test.
|
|
|
|
|
|
missing headers, other jump relocs removed
|
|
|
|
|
|
|
|
Hide __syscall_error from outside libc.
From Peter Mazinger.
|
|
|
|
|
|
on both x86 and arm...
-Erik
|
|
|
|
functions as such, thereby hosing the shared lib loader.
|
|
-Erik
|
|
names instead.
-Erik
|
|
wouldn't run on my little arm7tdmi/uClinux boards, since without
vfork working, nothing works on uClinux. It took me forever to
find this, since other problems were hiding this one. Big, huge,
sigh of relief.
-Erik
|