Menuconfig option for musl-libc pretending mmu is just pining for the fijords.

This commit is contained in:
Rob Landley 2015-08-29 22:12:56 -05:00
parent 9215cbc062
commit 8c588d822a
2 changed files with 27 additions and 0 deletions

View File

@ -130,4 +130,30 @@ config TOYBOX_UID_USR
default 500
help
When commands like useradd/groupadd allocate user IDs, start here.
config TOYBOX_MUSL_NOMMU_IS_BROKEN
bool "Workaround for musl-libc breakage on nommu systems."
default n
help
When using musl-libc on a nommu system, you'll need to say "y" here.
Although uclibc lets you detect support for things like fork() and
daemon() at compile time, musl intentionally includes broken versions
that always return -ENOSYS on nommu systems, and goes out of its way
to prevent any cross-compile compatible compile-time probes for a
nommu system.
Musl does this despite the fact that a nommu system can't even run
standard ELF binaries, and requires specially packaged executables.
(You can't even check a #define to see that you're building against
musl, due to its maintainer's policy that musl never has bugs that
require workarounds.)
So our only choice is to manually provide a musl nommu bug workaround
you can manually select to enable (larger, slower) nommu support with
musl.
You don't need this for uClibc, we have a compile time probe that
autodetects nommu support there.
endmenu

View File

@ -89,6 +89,7 @@ EOF
#include <unistd.h>
int main(int argc, char *argv[]) { return fork(); }
EOF
echo -e '\tdepends on !TOYBOX_MUSL_NOMMU_IS_BROKEN'
}
genconfig()