[aus.pyramid] Makeing "Gated"

logier@cheops.qld.tne.oz.au (Rob Logie) (04/08/91)

I have got the source  for gated release2 from cornell.
I am trying to make it under the UCB universe and it complains about
not being able to find "memory.h"

Has any one any ideas how to get around this (Pyramid seems to have memory.h
only in the att universe. If I try to compile under ATT I get a whole new
lot of problems) or better still if someone has some src/Makefile.* files
that are configured correctly for the Pyramid I would be greatfull if you
could mail them to me .

I am using OSX 5.0.


Thanks in Advance


-- 
Rob Logie                                    EMAIL: logier@cheops.qld.tne.oz.au
Telecom Australia                            FAX:   +61 7 837 4704
TNE Computer Support Services                PH:    +61 7 837 5174
Brisbane Office                              "These are my opinions alone"

keyvan@pyra.co.uk (Keyvan Shirnia Pre Sales) (04/09/91)

In article <1991Apr8.073344.2646@cheops.qld.tne.oz.au> logier@cheops.qld.tne.oz.au (Rob Logie) writes:
>I am trying to make it under the UCB universe and it complains about
>not being able to find "memory.h"
>
>Has any one any ideas how to get around this (Pyramid seems to have memory.h
>only in the att universe. If I try to compile under ATT I get a whole new
>lot of problems) or better still if someone has some src/Makefile.* files
>that are configured correctly for the Pyramid I would be greatfull if you
>could mail them to me .

Well memory.h is only defined in ATT. (That is the definition) Some other
operating systems might have memory.h in their UCB environment, but that
is not true UCB!

I am not quite sure what kind of errors your are getting. However, the 
first thing I would try out would be: (Type this in your ATT universe shell)

cc -I/usr/.attinclude -I/usr/.ucbinclude gated.c -o gated /.ucblib/libc.a

This line should pickup both the UCB and ATT include files. From the linking
point of view, since you are already in ATT universe /.attlib/libc.a is
automatically searched. But to be sure that you are not missing any UCB
routines add /.ucblib/libc.a	.

If you got any more problems with this, PLEASE do send me an e-mail.

Best regards,
Keyvan

      -m------- Keyvan Shirnia		       Tel : +44 252 373035
    ---mmm----- Pre Sales Support 
  -----mmmmm--- Pyramid Technology Ltd.        keyvan@pyra.co.uk
-------mmmmmmm- Farnborough GU14 7NA, England.
"God is real unless declared integer!"

kre@cs.mu.OZ.AU (Robert Elz) (04/12/91)

keyvan@pyra.co.uk (Keyvan Shirnia Pre Sales) writes:

>Well memory.h is only defined in ATT. (That is the definition) Some other
>operating systems might have memory.h in their UCB environment, but that
>is not true UCB!

That's an obsolete notion of what BSD is ... memory.h appeared in BSD
in 4.3 (years ago).

There's not supposed to be any noticeable difference between the BSD
mem*() functions (which is what memory.h is all about) so you should be
able to simply copy (or link) the ATT universe memory.h into the UCB
universe on a pyramid.  Unfortunately, I suspect that this may be just
pushing the problem back one layer, as if memory.h isn't in pyramid's UCB
universe, then its almost certain that the mem*() functions aren't in the
libc in its UCB universe either.

You may be able to get around that by linking with the ATT universe libc
*after* the UCB universe libc - which means that you'll need to explicitly
name that on the cc (or ld) command line, not just default to it.

The BSD mem*() functions are supposed to be exact functional duplicates
of the Sys V versions - though the true BSD versions don't make any pretence
to be effecient - they were just added to make it easier to move Sys V
progs to BSD, and in general improve compatability between the two).

kre

ps: I'm pretty sure of all of this, except what might work on the
Pyramid, as I put all this stuff in BSD just before 4.3 was released.

rbj@uunet.UU.NET (Root Boy Jim) (04/13/91)

In article <kre.671424242@mundamutti.cs.mu.OZ.AU> kre@cs.mu.OZ.AU (Robert Elz) writes:
>keyvan@pyra.co.uk (Keyvan Shirnia Pre Sales) writes:
>
>>Well memory.h is only defined in ATT. (That is the definition) Some other
>>operating systems might have memory.h in their UCB environment, but that
>>is not true UCB!
>
>That's an obsolete notion of what BSD is ... memory.h appeared in BSD
>in 4.3 (years ago).

I don't believe that it was in the original 4.3. At least it's not
documented in the manual sets that you get from Usenix (or us).
It may have been hidden away in some System V compatibility
library directory in the source tree, however. In any case,
it's certainly been available for quite some time. The Tahoe
version has a copyright date of 85/08/05, which predates 4.3.

It appears that vendors who chase dual universes can't keep up
with either one. Sequent does just as bad of a job.

>You may be able to get around that by linking with the ATT universe libc
>*after* the UCB universe libc - which means that you'll need to explicitly
>name that on the cc (or ld) command line, not just default to it.

Perhaps I wasn't explicit enuf. Sequent lets you mix and match.
Pyramid, on the other hand, puts a reference to either
__ucblibc_Id_ or __attlibc_Id in every object in the library,
except for version.o, which defines same.

So yes, you can use both librarys. I just ran the following program
main(){printf("memcmp(\"foo\",\"bar\") = %x\n",memcmp("foo","bar"));}
with the command line: cc -o qaz qaz.c -lc /.attlib/libc.a
The answer, btw, is 4.

I suppose I can pull out both version.o and add them to each
library along with anything else I want to cross-pollenate.
-- 
		[rbj@uunet 1] stty sane
		unknown mode: sane