use an autoconf-like approach to check for arc4random(3)
after gecko2 told me his mac recently has it and I found out that Interix has it in -lcrypt and soon -lmirmake (:
This commit is contained in:
47
Build.sh
47
Build.sh
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# $MirOS: src/bin/mksh/Build.sh,v 1.50 2006/08/24 20:32:52 tg Exp $
|
# $MirOS: src/bin/mksh/Build.sh,v 1.51 2006/08/26 20:30:27 tg Exp $
|
||||||
#-
|
#-
|
||||||
# Environment: CC, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, NROFF
|
# Environment: CC, CFLAGS, CPPFLAGS, LDFLAGS, LIBS, NROFF
|
||||||
|
|
||||||
@@ -111,6 +111,51 @@ if test x"$sigseen" = x:; then
|
|||||||
done >signames.inc
|
done >signames.inc
|
||||||
test -s signames.inc || exit 1
|
test -s signames.inc || exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
$e Scanning for functions...
|
||||||
|
|
||||||
|
test 0 = "$HAVE_ARC4RANDOM" -o 0 = "$HAVE_ARC4RANDOM" ||
|
||||||
|
{
|
||||||
|
$e ... arc4random
|
||||||
|
cat >scn.c <<-'EOF'
|
||||||
|
#include <stdlib.h>
|
||||||
|
int main() { arc4random(); return (0); }
|
||||||
|
EOF
|
||||||
|
$CC $CFLAGS $CPPFLAGS $LDFLAGS -Wno-error scn.c $LIBS
|
||||||
|
if test -e a.out -o -e a.exe; then
|
||||||
|
HAVE_ARC4RANDOM=1
|
||||||
|
$e "==> arc4random... yes"
|
||||||
|
else
|
||||||
|
HAVE_ARC4RANDOM=0
|
||||||
|
$e "==> arc4random... no"
|
||||||
|
fi
|
||||||
|
rm -f scn.c a.out a.exe
|
||||||
|
}
|
||||||
|
|
||||||
|
test 0 = "$HAVE_ARC4RANDOM_PUSH" -o 0 = "$HAVE_ARC4RANDOM_PUSH" ||
|
||||||
|
if test 1 = "$HAVE_ARC4RANDOM"; then
|
||||||
|
$e ... arc4random_push
|
||||||
|
cat >scn.c <<-'EOF'
|
||||||
|
#include <stdlib.h>
|
||||||
|
int main() { arc4random_push(1); return (0); }
|
||||||
|
EOF
|
||||||
|
$CC $CFLAGS $CPPFLAGS $LDFLAGS -Wno-error scn.c $LIBS
|
||||||
|
if test -e a.out -o -e a.exe; then
|
||||||
|
HAVE_ARC4RANDOM_PUSH=1
|
||||||
|
$e "==> arc4random_push... yes"
|
||||||
|
else
|
||||||
|
HAVE_ARC4RANDOM_PUSH=0
|
||||||
|
$e "==> arc4random_push... no"
|
||||||
|
fi
|
||||||
|
rm -f scn.c a.out a.exe
|
||||||
|
else
|
||||||
|
HAVE_ARC4RANDOM_PUSH=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
$e ... done.
|
||||||
|
CPPFLAGS="$CPPFLAGS -DHAVE_ARC4RANDOM=$HAVE_ARC4RANDOM \
|
||||||
|
-DHAVE_ARC4RANDOM_PUSH=$HAVE_ARC4RANDOM_PUSH"
|
||||||
|
|
||||||
(v "cd '$srcdir' && exec $CC $CFLAGS -I'$curdir' $CPPFLAGS" \
|
(v "cd '$srcdir' && exec $CC $CFLAGS -I'$curdir' $CPPFLAGS" \
|
||||||
"$LDFLAGS $LDSTATIC -o '$curdir/mksh' $SRCS $LIBS") || exit 1
|
"$LDFLAGS $LDSTATIC -o '$curdir/mksh' $SRCS $LIBS") || exit 1
|
||||||
test -x mksh || exit 1
|
test -x mksh || exit 1
|
||||||
|
3
Makefile
3
Makefile
@@ -1,8 +1,9 @@
|
|||||||
# $MirOS: src/bin/mksh/Makefile,v 1.11 2006/08/01 12:46:01 tg Exp $
|
# $MirOS: src/bin/mksh/Makefile,v 1.12 2006/08/26 20:30:27 tg Exp $
|
||||||
|
|
||||||
PROG= mksh
|
PROG= mksh
|
||||||
SRCS= alloc.c edit.c eval.c exec.c expr.c funcs.c histrap.c \
|
SRCS= alloc.c edit.c eval.c exec.c expr.c funcs.c histrap.c \
|
||||||
jobs.c lex.c main.c misc.c shf.c syn.c tree.c var.c
|
jobs.c lex.c main.c misc.c shf.c syn.c tree.c var.c
|
||||||
|
CPPFLAGS+= -DHAVE_ARC4RANDOM -DHAVE_ARC4RANDOM_PUSH
|
||||||
CDIAGFLAGS+= -Wno-cast-qual
|
CDIAGFLAGS+= -Wno-cast-qual
|
||||||
|
|
||||||
LINKS+= ${BINDIR}/${PROG} ${BINDIR}/sh
|
LINKS+= ${BINDIR}/${PROG} ${BINDIR}/sh
|
||||||
|
4
check.t
4
check.t
@@ -1,4 +1,4 @@
|
|||||||
# $MirOS: src/bin/mksh/check.t,v 1.61 2006/08/24 20:50:02 tg Exp $
|
# $MirOS: src/bin/mksh/check.t,v 1.62 2006/08/26 20:30:27 tg Exp $
|
||||||
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
||||||
@@ -3872,5 +3872,5 @@ category: pdksh
|
|||||||
stdin:
|
stdin:
|
||||||
echo $KSH_VERSION
|
echo $KSH_VERSION
|
||||||
expected-stdout:
|
expected-stdout:
|
||||||
@(#)MIRBSD KSH R28 2006/08/24
|
@(#)MIRBSD KSH R28 2006/08/26
|
||||||
---
|
---
|
||||||
|
22
sh.h
22
sh.h
@@ -8,8 +8,8 @@
|
|||||||
/* $OpenBSD: c_test.h,v 1.4 2004/12/20 11:34:26 otto Exp $ */
|
/* $OpenBSD: c_test.h,v 1.4 2004/12/20 11:34:26 otto Exp $ */
|
||||||
/* $OpenBSD: tty.h,v 1.5 2004/12/20 11:34:26 otto Exp $ */
|
/* $OpenBSD: tty.h,v 1.5 2004/12/20 11:34:26 otto Exp $ */
|
||||||
|
|
||||||
#define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.40 2006/08/24 20:35:40 tg Exp $"
|
#define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.41 2006/08/26 20:30:27 tg Exp $"
|
||||||
#define MKSH_VERSION "R28 2006/08/24"
|
#define MKSH_VERSION "R28 2006/08/26"
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
|
||||||
@@ -1342,21 +1342,3 @@ extern void tty_close(void);
|
|||||||
# undef EXTERN
|
# undef EXTERN
|
||||||
#endif
|
#endif
|
||||||
#undef I__
|
#undef I__
|
||||||
|
|
||||||
#ifndef HAVE_ARC4RANDOM
|
|
||||||
#if defined(__gnu_linux__) || defined(__INTERIX) || defined(__sun__) \
|
|
||||||
|| (defined(__NetBSD__) && (__NetBSD_Version__ < 106020000)) \
|
|
||||||
|| defined(__CYGWIN__)
|
|
||||||
#define HAVE_ARC4RANDOM 0
|
|
||||||
#else
|
|
||||||
#define HAVE_ARC4RANDOM 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef HAVE_ARC4RANDOM_PUSH
|
|
||||||
#if defined(__MirBSD__) && (MirBSD >= 0x07AD)
|
|
||||||
#define HAVE_ARC4RANDOM_PUSH 1
|
|
||||||
#else
|
|
||||||
#define HAVE_ARC4RANDOM_PUSH 0
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
Reference in New Issue
Block a user