summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2003-02-18 02:08:20 +0000
committertjr <tjr@FreeBSD.org>2003-02-18 02:08:20 +0000
commit8ffc1f9506754450f927888992056a916df6e4b6 (patch)
tree8b676d0c71b3564f75c0c805d51f9274dc33dac5 /bin
parentadf3acbf08eca304e79c77dc37dd58265125b51d (diff)
downloadFreeBSD-src-8ffc1f9506754450f927888992056a916df6e4b6.zip
FreeBSD-src-8ffc1f9506754450f927888992056a916df6e4b6.tar.gz
Revert ALIGN change for the second and last time. I can't figure out
why this is breaking sparc64.
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/machdep.h52
-rw-r--r--bin/sh/memalloc.c7
-rw-r--r--bin/sh/nodes.c.pat3
3 files changed, 56 insertions, 6 deletions
diff --git a/bin/sh/machdep.h b/bin/sh/machdep.h
new file mode 100644
index 0000000..20aadd0
--- /dev/null
+++ b/bin/sh/machdep.h
@@ -0,0 +1,52 @@
+/*-
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Kenneth Almquist.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)machdep.h 8.2 (Berkeley) 5/4/95
+ * $FreeBSD$
+ */
+
+/*
+ * Most machines require the value returned from malloc to be aligned
+ * in some way. The following macro will get this right on many machines.
+ */
+
+#ifndef ALIGN
+union align {
+ int i;
+ char *cp;
+};
+
+#define ALIGN(nbytes) (((nbytes) + sizeof(union align) - 1) & ~(sizeof(union align) - 1))
+#endif
diff --git a/bin/sh/memalloc.c b/bin/sh/memalloc.c
index c3e5fca..a50d661 100644
--- a/bin/sh/memalloc.c
+++ b/bin/sh/memalloc.c
@@ -42,12 +42,11 @@ static char sccsid[] = "@(#)memalloc.c 8.3 (Berkeley) 5/4/95";
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/param.h>
-
#include "shell.h"
#include "output.h"
#include "memalloc.h"
#include "error.h"
+#include "machdep.h"
#include "mystring.h"
#include "expand.h"
#include <stdlib.h>
@@ -140,8 +139,8 @@ stalloc(int nbytes)
sp = ckmalloc(sizeof(struct stack_block) - MINSIZE +
blocksize);
sp->prev = stackp;
- stacknxt = (char *)ALIGN(sp->space);
- stacknleft = blocksize - (stacknxt - sp->space);
+ stacknxt = sp->space;
+ stacknleft = blocksize;
stackp = sp;
INTON;
}
diff --git a/bin/sh/nodes.c.pat b/bin/sh/nodes.c.pat
index e5a2287..2fc79f0 100644
--- a/bin/sh/nodes.c.pat
+++ b/bin/sh/nodes.c.pat
@@ -37,8 +37,6 @@
* $FreeBSD$
*/
-#include <sys/param.h>
-
#include <stdlib.h>
/*
* Routine for dealing with parsed shell commands.
@@ -47,6 +45,7 @@
#include "shell.h"
#include "nodes.h"
#include "memalloc.h"
+#include "machdep.h"
#include "mystring.h"
OpenPOWER on IntegriCloud