[comp.os.mach] seekdir & telldir in 2.5 libc source

paulr@fai.UUCP (Paul Rasmussen) (05/04/91)

We are working on porting Mach 2.5 to new Fujitsu hardware.  In the libc
source that is distributed with Mach 2.5, if "CMU" is defined, there is
code purposely inserted to make "seekdir" and "telldir" not work and
huge warnings of the form "Don't use telldir under MACH !!!".  We are
assuming we should be building our library with "CMU" defined.  Is this
wrong?  If not, what is wrong with using seekdir and telldir under MACH?
Some BSD utilities (du and tar are the ones we have noticed so far) make
calls to telldir and seekdir so we can't build the BSD versions of these
with our current libc.  Does CMU have it's own version of these utilities?
If so, they aren't included in the 2.5 vax or rt source trees we have.  Any
information on this would be appreciated.

Thanks, paul r.

BTW, this is for the "non-parallel" library so we don't think multi-thread
issues should be a concern for routines in this library.

berggren@eecs.cs.pdx.edu (Eric Berggren) (05/05/91)

paulr@fai.UUCP (Paul Rasmussen) writes:


>We are working on porting Mach 2.5 to new Fujitsu hardware.  In the libc
>source that is distributed with Mach 2.5, if "CMU" is defined, there is
>code purposely inserted to make "seekdir" and "telldir" not work and
>huge warnings of the form "Don't use telldir under MACH !!!".  We are
>assuming we should be building our library with "CMU" defined.  Is this
>wrong?  If not, what is wrong with using seekdir and telldir under MACH?
>Some BSD utilities (du and tar are the ones we have noticed so far) make
>calls to telldir and seekdir so we can't build the BSD versions of these
>with our current libc.  Does CMU have it's own version of these utilities?
>If so, they aren't included in the 2.5 vax or rt source trees we have.  Any
>information on this would be appreciated.

  For some reason, we don't even have it in libc.... But you you do get any
info, send me a copy. Thanx.

-e.b.

==============================================================================
  Eric Berggren             |         "Life is a Turing Test;
  Computer Science/Eng.     |           We're all automatons!"
  berggren@eecs.cs.pdx.edu  |              - (click, whir, buzz, chirp)

ed@mtxinu.COM (Ed Gould) (05/07/91)

>We are working on porting Mach 2.5 to new Fujitsu hardware.  In the libc
>source that is distributed with Mach 2.5, if "CMU" is defined, there is
>code purposely inserted to make "seekdir" and "telldir" not work and
>huge warnings of the form "Don't use telldir under MACH !!!".

That code is there because there are filesystems for which seekdir
and telldir cannot be made to work, notably AFS.  Even under the
standard UFS, they are not absolutely guaranteed.  The CMU environment
includes AFS, hence the use of that code.

The Mach distribution from mt Xinu contains a complete adaptation
of the BSD code to this environment, including, e.g., a tar that
doesn't need seekdir.

Arguably, that code shouldn't be conditional on CMU being defined,
but it would have taken lots longer than 18 months to clean out
all of those inconsistencies.  We decided to leave "CMU" defined
by default, but to remove the really CMU-specific (or at least the
Computer Science specific) to be contitional on CMUCS.  We were
supposed to get that all done in 12 months, but there was just too
much.

-- 
Ed Gould			No longer formally affiliated with,
ed@mtxinu.COM			and certainly not speaking for, mt Xinu.

"I'll fight them as a woman, not a lady.  I'll fight them as an engineer."