Fixes to include files (both gcc and A/UX 2.0.1)
John Coolidge
coolidge at cs.uiuc.edu
Sun Mar 31 14:19:41 AEST 1991
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 at 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.
More information about the Comp.unix.aux
mailing list