Mercurial > hg > toybox
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