Changed mechanism for defining size_type

This commit is contained in:
ceriel 1991-07-12 10:16:11 +00:00
parent 240dd55fd9
commit 4d682ab1e2
4 changed files with 30 additions and 11 deletions

View file

@ -12,3 +12,4 @@ mal.c
param.h
phys.c
phys.h
size_type.h

View file

@ -5,7 +5,7 @@ CFLAGS = -O -I$(EMHOME)/modules/h $(COPT)
SUF = o
RCC = cc #$ must produce a runnable object
MALLOCSRC = READ_ME size_type.h param.h impl.h check.h log.h phys.h \
MALLOCSRC = READ_ME size_type.h gensize_type.h param.h impl.h check.h log.h phys.h \
mal.c log.c phys.c check.c
.SUFFIXES: .$(SUF)
@ -35,10 +35,10 @@ opr:
make pr | opr
clean:
rm -f *.$(SUF) clashes malloc1.c size_type.h getsize malloc.c
rm -f *.$(SUF) clashes malloc1.c gensize_type.h getsize malloc.c
size_type.h: getsize
getsize > size_type.h
gensize_type.h: getsize
getsize > gensize_type.h
getsize: getsize.c
$(RCC) -o getsize getsize.c

View file

@ -11,14 +11,17 @@
main()
{
puts("#ifndef size_type");
if (sizeof(unsigned int) == sizeof(char *)) {
puts("typedef unsigned int size_type;");
exit(0);
puts("#define size_type unsigned int");
}
if (sizeof(long) == sizeof(char *)) {
puts("typedef long size_type;");
exit(0);
else if (sizeof(long) == sizeof(char *)) {
puts("#define size_type long");
}
else {
fputs("funny pointer size\n", stderr);
exit(1);
}
puts("#endif");
exit(0);
}

View file

@ -0,0 +1,15 @@
/* $Header$ */
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
/* This file defines size_type if _EM_WSIZE and _EM_PSIZE are defined.
*/
#if defined(_EM_WSIZE) && defined(_EM_PSIZE)
#if _EM_WSIZE == _EM_PSIZE
#define size_type unsigned int
#else
#define size_type long
#endif
#endif