Age | Commit message (Collapse) | Author |
|
* SAVE_PID, RESTORE_PID in vfork.S
* clone.S tweaks to allow for the pid to be reset
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
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.
|
|
|
|
The patch fixes up the .align directives to '2' (i.e. a multiple
of 4) not '4' (a multiple of 16 - apparently an error since it seems
to be unnecessary, there is no advantage here in cache line alignment).
this is an arm "feature" ... the value given to .align is not in bytes:
.align 4 in arm means .align 2 ^ 4
|
|
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
|
|
|