diff options
-rw-r--r-- | lib/portability.h | 2 | ||||
-rwxr-xr-x | scripts/genconfig.sh | 28 |
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/portability.h b/lib/portability.h index feaf7894..745f8cd9 100644 --- a/lib/portability.h +++ b/lib/portability.h @@ -145,3 +145,5 @@ int clearenv(void); ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream); ssize_t getline(char **lineptr, size_t *n, FILE *stream); #endif + +#include "generated/portability.h" diff --git a/scripts/genconfig.sh b/scripts/genconfig.sh index dedfde4d..b1eb2a8e 100755 --- a/scripts/genconfig.sh +++ b/scripts/genconfig.sh @@ -49,5 +49,33 @@ genconfig() done } +headerprobes() +{ + ${CROSS_COMPILE}${CC} -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} -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 |