diff --git a/Build.sh b/Build.sh index c58972c..518dd96 100644 --- a/Build.sh +++ b/Build.sh @@ -1,5 +1,5 @@ #!/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 @@ -111,6 +111,51 @@ if test x"$sigseen" = x:; then done >signames.inc test -s signames.inc || exit 1 fi + +$e Scanning for functions... + +test 0 = "$HAVE_ARC4RANDOM" -o 0 = "$HAVE_ARC4RANDOM" || +{ + $e ... arc4random + cat >scn.c <<-'EOF' + #include + 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 + 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" \ "$LDFLAGS $LDSTATIC -o '$curdir/mksh' $SRCS $LIBS") || exit 1 test -x mksh || exit 1 diff --git a/Makefile b/Makefile index 38d5896..bcf6dd0 100644 --- a/Makefile +++ b/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 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 +CPPFLAGS+= -DHAVE_ARC4RANDOM -DHAVE_ARC4RANDOM_PUSH CDIAGFLAGS+= -Wno-cast-qual LINKS+= ${BINDIR}/${PROG} ${BINDIR}/sh diff --git a/check.t b/check.t index a7f34eb..5ba4558 100644 --- a/check.t +++ b/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: 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 $ @@ -3872,5 +3872,5 @@ category: pdksh stdin: echo $KSH_VERSION expected-stdout: - @(#)MIRBSD KSH R28 2006/08/24 + @(#)MIRBSD KSH R28 2006/08/26 --- diff --git a/sh.h b/sh.h index 7a1fb80..97adab6 100644 --- a/sh.h +++ b/sh.h @@ -8,8 +8,8 @@ /* $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 $ */ -#define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.40 2006/08/24 20:35:40 tg Exp $" -#define MKSH_VERSION "R28 2006/08/24" +#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/26" #include @@ -1342,21 +1342,3 @@ extern void tty_close(void); # undef EXTERN #endif #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