Probes for O_NOFOLLOW that compile and run something aren't compatible with cross compiling, so just #define it to 0 if it's not in fcntl.h where posix-2008 says.
diff --git a/Makefile b/Makefile
index c5118e0..40a3426 100644
--- a/Makefile
+++ b/Makefile
@@ -44,9 +44,8 @@
rm -rf toybox toybox_unstripped generated/config.h generated/Config.in \
generated/newtoys.h generated/globals.h testdir \
generated/Config.probed generated/oldtoys.h generated/flags.h \
- generated/portability.h .singleconfig .singleconfig.old \
- generated/instlist generated/mkflags generated/config2help \
- generated/help.h
+ .singleconfig .singleconfig.old generated/help.h \
+ generated/instlist generated/mkflags generated/config2help
distclean: clean
rm -f toybox_old .config*
diff --git a/lib/portability.h b/lib/portability.h
index 3b1cdf7..099f321 100644
--- a/lib/portability.h
+++ b/lib/portability.h
@@ -158,5 +158,8 @@
#include <sys/mount.h>
#include <sys/swap.h>
-// compile time probes for stuff libc didn't provide
-#include "generated/portability.h"
+// Some systems don't define O_NOFOLLOW, and it varies by architecture, so...
+#include <fcntl.h>
+#ifndef O_NOFOLLOW
+#define O_NOFOLLOW 0
+#endif
diff --git a/scripts/genconfig.sh b/scripts/genconfig.sh
index 71bc609..8ab26dc 100755
--- a/scripts/genconfig.sh
+++ b/scripts/genconfig.sh
@@ -49,33 +49,5 @@
done
}
-headerprobes()
-{
- ${CROSS_COMPILE}${CC} $CFLAGS -xc -o /dev/null - 2>/dev/null << EOF
- #include <fcntl.h>
- #ifndef O_NOFOLLOW
- #error posix 2008 was a while ago now
- #endif
-EOF
- if [ $? -ne 0 ]
- then
- rm -f a.out
- ${CROSS_COMPILE}${CC} $CFLAGS -xc - 2>/dev/null << EOF
- #include <stdio.h>
- #include <sys/types.h>
- #include <asm/fcntl.h>
-
- int main(int argc, char *argv[])
- {
- printf("0x%x\n", O_NOFOLLOW);
- }
-EOF
- X=$(./a.out) 2>/dev/null
- rm -f a.out
- echo "#define O_NOFOLLOW ${X:-0}"
- fi
-}
-
probeconfig > generated/Config.probed || rm generated/Config.probed
genconfig > generated/Config.in || rm generated/Config.in
-headerprobes > generated/portability.h || rm generated/portability.h