Coda File System

Re: Build fixes

From: Peter J. Braam <braam_at_cs.cmu.edu>
Date: Sun, 5 Jul 1998 21:20:05 -0400 (EDT)
Steven,

Libc 5 is really gone -- H. J.  Lu has just announced that he will do no
more work on it.  We certainly won't be using it anymore and therefore
likely even if we put your patches in now, they will gradually disappear
again.

Some things you say below I have no difficulty with, but other stuff I
don't think is necessary.

On Thu, 2 Jul 1998, Steven N. Hirsch wrote:

> All,
> 
> Unless I'm overlooking the obvious, there is no way to build coda outside
> CMU without doing this from the root directory of the source tree (please
> excuse any lack of elegance): 
> 
> 
> -------------------------- Cut Here -----------------------------
> #!/bin/sh
> 
> patch <<EOF
> --- lib-src/mlwp/lwp.c.orig	Wed Jun 24 09:48:05 1998
> +++ lib-src/mlwp/lwp.c	Mon Jun 29 19:44:12 1998
> @@ -133,6 +133,8 @@
>  typedef void *register_t;
>  #endif
>  
> +typedef unsigned long register_t;
> +

This will have to go into the #ifdef clause.  Most systems have register_t
and in that case we definitely don't want to redefine it.


>  /*----------------------------------------*/
>  /* Globals identical in  OLD and NEW lwps */
>  /*----------------------------------------*/
> --- kernel-src/vfs/includes/coda.h.orig	Sun Jun  7 23:58:31 1998
> +++ kernel-src/vfs/includes/coda.h	Thu Jul  2 11:30:07 1998
> @@ -41,6 +41,9 @@
>  
>  #if defined(__linux__) || defined(__CYGWIN32__)
>  #define cdev_t u_quad_t
> +#if !defined(__GLIBC__) || __GLIBC__ < 2
> +#include <time.h>
> +#endif
>  #if !defined(_UQUAD_T_) && (!defined(__GLIBC__) || __GLIBC__ < 2)
>  #define _UQUAD_T_ 1
>  typedef unsigned long long u_quad_t;
> EOF
> 

This won't go in.  The coda.h file is the _only_ file shared between the
kernel and and userland.  I absolutely cannot include time.h without
running the risk of a time conflict.  Perhaps you can tell me what the
problem is in the compile, using MAKE CODA not just MAKE.


> mkdir include
> cd include
> 
> for dir in ../coda-src ../kernel-src ../lib-src ../rvm-src; do
>     for file in `find $dir -name "*.h" -print`; do
> 	ln -sf $file .
>     done
> done
> 
> ln -sf ../coda-src/rpc2/errorsdefs.h .
> ln -sf ../coda-src/auth2/auth2.h .
> ln -sf ../kernel-src/vfs/bsd44/cfs .
> ln -sf ../coda-src/kerndep/pioctl.h .
> 
> for file in admon.h adsrv.h callback.h mond.h operations.h \
>     recov_vollog.h res.h vcrcommon.h vice.h voldump.h volutil.h; do
>     ln -sf ../coda-src/vicedep/$file .
> done
> 
> cd ../kernel-src/vfs/bsd44/cfs
> mv -f coda.h coda.h.bsd
> ln -sf ../../includes/coda.h .

If you do make coda (not make) then all these symlinks are unnecessary.
The hdrinstall target (part of make coda) installs the include files in
the include directory. 

- Peter -

> 
> ------------------------------ Cut Here --------------------------
> 
> With these fixes, it builds correctly against libc-5.4.44 and should work
> with glibc as well.
> 
> Steve
> 
> 
Received on 1998-07-05 21:21:54