coolidge@cs.uiuc.edu (John Coolidge) (03/31/91)
After about a week of having 2.0.1, here are a few problems that I've found with include files: 1) rpc/types.h disagrees with sys/types.h over malloc. Fix: *** types.h.orig Thu Nov 29 14:32:30 1990 --- types.h Wed Mar 27 13:23:40 1991 *************** *** 30,36 #endif #ifndef KERNEL ! extern char *malloc(); #define mem_alloc(bsize) malloc(bsize) #define mem_free(ptr, bsize) free(ptr) #ifndef major /* This is a kind of trick, but... */ --- 30,36 ----- #endif #ifndef KERNEL ! extern void *malloc(size_t); #define mem_alloc(bsize) malloc(bsize) #ifndef major /* This is a kind of trick, but... */ #define mem_free(ptr, bsize) free(ptr) 2) sys/dir.h uses a type (DIR) before it is defined. Fix: *** dir.h.orig Thu Nov 29 14:30:53 1990 --- dir.h Thu Mar 28 23:07:01 1991 *************** *** 56,61 char d_name[MAXNAMLEN + 1]; /* name (up to MAXNAMLEN + 1) */ }; #if !defined(KERNEL) /* * The DIRSIZ macro gives the minimum record length which will hold --- 56,74 ----- char d_name[MAXNAMLEN + 1]; /* name (up to MAXNAMLEN + 1) */ }; + /* + * Definitions for library routines operating on directories. + */ + typedef struct __dirdesc { + int dd_fd; + long dd_loc; + long dd_size; + long dd_bbase; + long dd_entno; + long dd_bsize; + char *dd_buf; + } DIR; + #if !defined(KERNEL) /* * The DIRSIZ macro gives the minimum record length which will hold *************** *** 97,115 char d_name[_SYS_NAME_MAX + 1]; /* name with terminating NULL */ }; #endif /* _SYSV_SOURCE || _POSIX_SOURCE */ - - /* - * Definitions for library routines operating on directories. - */ - typedef struct __dirdesc { - int dd_fd; - long dd_loc; - long dd_size; - long dd_bbase; - long dd_entno; - long dd_bsize; - char *dd_buf; - } DIR; #if defined(__STDC__) DIR *opendir(const char *dirname); --- 110,115 ----- char d_name[_SYS_NAME_MAX + 1]; /* name with terminating NULL */ }; #endif /* _SYSV_SOURCE || _POSIX_SOURCE */ #if defined(__STDC__) DIR *opendir(const char *dirname); 3) gcc's stddef.h file conflicts with sys/types.h. Fix: *** stddef.h.orig Sat Mar 30 21:36:27 1991 --- stddef.h Wed Mar 27 13:22:04 1991 *************** *** 8,13 #ifndef __PTRDIFF_T #ifndef _PTRDIFF_T_ #ifndef ___int_ptrdiff_t_h #define _PTRDIFF_T #define _T_PTRDIFF #define __PTRDIFF_T --- 8,14 ----- #ifndef __PTRDIFF_T #ifndef _PTRDIFF_T_ #ifndef ___int_ptrdiff_t_h + #ifndef __ptrdiff_t #define _PTRDIFF_T #define _T_PTRDIFF #define __PTRDIFF_T *************** *** 13,18 #define __PTRDIFF_T #define _PTRDIFF_T_ #define ___int_ptrdiff_t_h typedef long ptrdiff_t; #endif /* ___int_ptrdiff_t_h */ #endif /* _PTRDIFF_T_ */ --- 14,20 ----- #define __PTRDIFF_T #define _PTRDIFF_T_ #define ___int_ptrdiff_t_h + #define __ptrdiff_t typedef long ptrdiff_t; #endif /* __ptrdiff_t */ #endif /* ___int_ptrdiff_t_h */ *************** *** 14,19 #define _PTRDIFF_T_ #define ___int_ptrdiff_t_h typedef long ptrdiff_t; #endif /* ___int_ptrdiff_t_h */ #endif /* _PTRDIFF_T_ */ #endif /* __PTRDIFF_T */ --- 16,22 ----- #define ___int_ptrdiff_t_h #define __ptrdiff_t typedef long ptrdiff_t; + #endif /* __ptrdiff_t */ #endif /* ___int_ptrdiff_t_h */ #endif /* _PTRDIFF_T_ */ #endif /* __PTRDIFF_T */ *************** *** 27,32 #ifndef __SIZE_T #ifndef _SIZE_T_ #ifndef ___int_size_t_h #define _SIZE_T #define _T_SIZE #define __SIZE_T --- 30,36 ----- #ifndef __SIZE_T #ifndef _SIZE_T_ #ifndef ___int_size_t_h + #ifndef __size_t #define _SIZE_T #define _T_SIZE #define __SIZE_T *************** *** 32,37 #define __SIZE_T #define _SIZE_T_ #define ___int_size_t_h typedef unsigned long size_t; #endif /* ___int_size_t_h */ #endif /* _SIZE_T_ */ --- 36,42 ----- #define __SIZE_T #define _SIZE_T_ #define ___int_size_t_h + #define __size_t typedef unsigned long size_t; #endif /* __size_t */ #endif /* ___int_size_t_h */ *************** *** 33,38 #define _SIZE_T_ #define ___int_size_t_h typedef unsigned long size_t; #endif /* ___int_size_t_h */ #endif /* _SIZE_T_ */ #endif /* __SIZE_T */ --- 38,44 ----- #define ___int_size_t_h #define __size_t typedef unsigned long size_t; + #endif /* __size_t */ #endif /* ___int_size_t_h */ #endif /* _SIZE_T_ */ #endif /* __SIZE_T */ I suspect that I'll find more things as time goes on; I haven't actually run fixincludes with 2.0.1's header files yet, so I'm still using 2.0's in places... --John -------------------------------------------------------------------------- John L. Coolidge Internet:coolidge@cs.uiuc.edu UUCP:uiucdcs!coolidge Of course I don't speak for the U of I (or anyone else except myself) Copyright 1991 John L. Coolidge. Copying allowed if (and only if) attributed. You may redistribute this article if and only if your recipients may as well.