changeset 1259:565980862743 draft

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.
author Rob Landley <rob@landley.net>
date Tue, 15 Apr 2014 21:59:42 -0500
parents fd0a595f5486
children 0ce03bb85ebd
files Makefile lib/portability.h scripts/genconfig.sh
diffstat 3 files changed, 7 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Sun Apr 13 16:07:22 2014 -0500
+++ b/Makefile	Tue Apr 15 21:59:42 2014 -0500
@@ -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*
--- a/lib/portability.h	Sun Apr 13 16:07:22 2014 -0500
+++ b/lib/portability.h	Tue Apr 15 21:59:42 2014 -0500
@@ -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
--- a/scripts/genconfig.sh	Sun Apr 13 16:07:22 2014 -0500
+++ b/scripts/genconfig.sh	Tue Apr 15 21:59:42 2014 -0500
@@ -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