Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/lib/libc/sys Don't try to figure out how the stack gro...
details: https://anonhg.NetBSD.org/src/rev/f5274a3c9a46
branches: trunk
changeset: 771995:f5274a3c9a46
user: joerg <joerg%NetBSD.org@localhost>
date: Mon Dec 12 20:55:44 2011 +0000
description:
Don't try to figure out how the stack grows at run time. It's not
portable and fails badly if the test function is removed...
diffstat:
tests/lib/libc/sys/t_clone.c | 28 +++++++++++-----------------
1 files changed, 11 insertions(+), 17 deletions(-)
diffs (67 lines):
diff -r 62629d7e23b1 -r f5274a3c9a46 tests/lib/libc/sys/t_clone.c
--- a/tests/lib/libc/sys/t_clone.c Mon Dec 12 19:59:21 2011 +0000
+++ b/tests/lib/libc/sys/t_clone.c Mon Dec 12 20:55:44 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: t_clone.c,v 1.2 2011/07/07 16:31:11 jruoho Exp $ */
+/* $NetBSD: t_clone.c,v 1.3 2011/12/12 20:55:44 joerg Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
#include <sys/cdefs.h>
__COPYRIGHT("@(#) Copyright (c) 2008\
The NetBSD Foundation, inc. All rights reserved.");
-__RCSID("$NetBSD: t_clone.c,v 1.2 2011/07/07 16:31:11 jruoho Exp $");
+__RCSID("$NetBSD: t_clone.c,v 1.3 2011/12/12 20:55:44 joerg Exp $");
#include <sys/mman.h>
#include <sys/resource.h>
@@ -53,18 +53,6 @@
#define FROBVAL 41973
#define CHILDEXIT 0xa5
-/*
- * return 1 if the stack grows down, 0 if it grows up.
- */
-static int
-stackdir(void *p)
-{
- int val;
- void *q = &val;
-
- return p < q ? 0 : 1;
-}
-
static int
dummy(void *arg)
{
@@ -116,7 +104,10 @@
ATF_REQUIRE_ERRNO(errno, allocstack != MAP_FAILED);
- stack = (caddr_t) allocstack + STACKSIZE * stackdir(&stat);
+ stack = allocstack;
+#ifndef __MACHINE_STACK_GROWS_UP
+ stack = (char *)stack + STACKSIZE;
+#endif
printf("parent: stack = %p, frobme = %p\n", stack, frobme);
fflush(stdout);
@@ -200,12 +191,15 @@
ATF_TC_BODY(clone_null_func, tc)
{
void *allocstack, *stack;
- int rv, stat;
+ int rv;
allocstack = mmap(NULL, STACKSIZE, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, (off_t) 0);
ATF_REQUIRE_ERRNO(errno, allocstack != MAP_FAILED);
- stack = (caddr_t) allocstack + STACKSIZE * stackdir(&stat);
+ stack = allocstack;
+#ifndef __MACHINE_STACK_GROWS_UP
+ stack = (char *)stack + STACKSIZE;
+#endif
errno = 0;
rv = __clone(0, stack,
Home |
Main Index |
Thread Index |
Old Index