diff options
Diffstat (limited to 'U/alignbytes.U')
-rw-r--r-- | U/alignbytes.U | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/U/alignbytes.U b/U/alignbytes.U new file mode 100644 index 0000000000..38526465a0 --- /dev/null +++ b/U/alignbytes.U @@ -0,0 +1,57 @@ +?RCS: $Id: alignbytes.U,v 3.0 1993/08/18 12:05:23 ram Exp $ +?RCS: +?RCS: Copyright (c) 1991-1993, Raphael Manfredi +?RCS: +?RCS: You may redistribute only under the terms of the Artistic Licence, +?RCS: as specified in the README file that comes with the distribution. +?RCS: You may reuse parts of this distribution only within the terms of +?RCS: that same Artistic Licence; a copy of which may be found at the root +?RCS: of the source tree for dist 3.0. +?RCS: +?RCS: $Log: alignbytes.U,v $ +?RCS: Revision 3.0 1993/08/18 12:05:23 ram +?RCS: Baseline for dist 3.0 netwide release. +?RCS: +?MAKE:memalignbytes: Myread cat cc ccflags rm +?MAKE: -pick add $@ %< +?S:memalignbytes: +?S: This variable holds the number of bytes required to align a +?S: double. Usual values are 2, 4 and 8. +?S:. +?X: This used to be called ALIGNBYTES, but that conflicts with +?X: <machines/param.h> in NetBSD. +?C:MEM_ALIGNBYTES (ALIGNBYTES): +?C: This symbol contains the number of bytes required to align a +?C: double. Usual values are 2, 4 and 8. +?C:. +?H:#define MEM_ALIGNBYTES $memalignbytes /**/ +?H:. +: check for alignment requirements +echo " " +case "$memalignbytes" in +'') echo "Checking alignment constraints..." >&4 + $cat >try.c <<'EOCP' +struct foobar { + char foo; + double bar; +} try; +main() +{ + printf("%d\n", (char *)&try.bar - (char *)&try.foo); +} +EOCP + if $cc $ccflags try.c -o try >/dev/null 2>&1; then + dflt=`./try` + else + dflt='8' + echo"(I can't seem to compile the test program...)" + fi + ;; +*) dflt="$memalignbytes" + ;; +esac +rp="Doubles must be aligned on a how-many-byte boundary?" +. ./myread +memalignbytes="$ans" +$rm -f try.c try + |