diff options
-rw-r--r-- | Config.in | 26 | ||||
-rwxr-xr-x | scripts/genconfig.sh | 1 |
2 files changed, 27 insertions, 0 deletions
@@ -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 diff --git a/scripts/genconfig.sh b/scripts/genconfig.sh index 031e97e0..ce8c0266 100755 --- a/scripts/genconfig.sh +++ b/scripts/genconfig.sh @@ -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() |