Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140330231747.GB26358@brightrain.aerifal.cx>
Date: Sun, 30 Mar 2014 19:17:47 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: Any plans on MMU-less support?

On Sun, Mar 30, 2014 at 05:01:39PM +0200, Szabolcs Nagy wrote:
> * Smirnov Vladimir <mapron1@...il.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)

vfork does not use fork except as a default implementation when no
arch-specific file exists.

The rest are probably mostly uninteresting to nommu; in any case,
they're not something libc can fix, but things apps must avoid using
to work on nommu.

> brk is not available so malloc needs to change

Thankfully support for the case where brk fails is already on the
agenda due to the kernel bug that affects PIE.

> mmap may need MAP_UNINITIALIZED flag for performance

This is unrelated to libc and gives wrong semantics. If apps want they
can do it, but it's really a bad idea.

> (and MAP_FIXED flag will fail)

Just for MAP_SHARED.

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

Shouldn't affect libc.

> 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)

This is definitely a topic that needs more research. I doubt dynamic
linking could be made to work easily.

> pthread may need smaller default stack and more careful stack usage

This only matters if the machine has a tiny amount of memory; it's
orthogonal to nommu.

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

This is rather hideous.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.