I already using uClibc so i know that i hardly ever have fork or dynamic linkage. It's all suitable for me.
So whats up with mmap and startup code?
I wonder on minimal working set of that all :-)


2014-03-31 0:01 GMT+09:00 Szabolcs Nagy <nsz@port70.net>:
* Smirnov Vladimir <mapron1@gmail.com> [2014-03-30 15:49:08 +0900]:
> I wonder if MUSL have such roadmap or there is any hackish way to
> add that support (may be some unoffitial patches).
> My problem that i've stucked with old gcc toolchain and uClibc
> supporting one widely used ARMv4 MMUless chip.

looking at uClibc the main differences in a no-mmu system:

fork is not available so related functions have to be changed/disabled
(vfork, daemon, wordexp, forkpty, pthread_atfork)

brk is not available so malloc needs to change

mmap may need MAP_UNINITIALIZED flag for performance
(and MAP_FIXED flag will fail)

memory management related things may need to be changed/disabled
(mprotect?,mlock,msync,..)

for dynamic linking ldso and libc startup code may need some change
(some targets (not arm) need fdpic or dsbt elf support)
(others can use a shared flat binary format)

pthread may need smaller default stack and more careful stack usage

arm startup code needs a change according to
http://git.uclibc.org/uClibc/tree/libc/sysdeps/linux/arm/crt1.S#n179

and you may need to fix various toolchain issues..