Bug 16162

Summary: shared /usr/src isn't because .depend files are not shareable
Product: Base System Reporter: mjacob <mjacob>
Component: miscAssignee: Marcel Moolenaar <marcel>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.0-CURRENT   
Hardware: Any   
OS: Any   

Description mjacob 2000-01-17 20:40:02 UTC
You can no longer share /usr/src between i386 && alpha. In fact,
I don't really see how shared source can work at all. 

The problem here is that, at least for building bootstrap tools, several
derived files that contain platform specific information end up in /usr/src-
not in OBJDIR. This leads to breakage right away because .depend's are
radically different between alpha and i386:

echo yacc: /usr/obj/usr/src/alpha/usr/lib/libc.a  >> .depend
cc -O -pipe   -I/usr/obj/usr/src/alpha/usr/include -c /usr/src/usr.bin/yacc/closure.c
cc -O -pipe   -I/usr/obj/usr/src/alpha/usr/include -c /usr/src/usr.bin/yacc/error.c
cc -O -pipe   -I/usr/obj/usr/src/alpha/usr/include -c /usr/src/usr.bin/yacc/lalr.c
cc -O -pipe   -I/usr/obj/usr/src/alpha/usr/include -c /usr/src/usr.bin/yacc/lr0.c
make: don't know how to make /usr/include/machine/trap.h. Stop
*** Error code 2

Stop in /usr/src.

Fix: 

Put *all* derived files in OBJDIR.
How-To-Repeat: 
Share a source tree between an alpha and an i386 and try and do
a buildworld. Or share a /usr/src between to i386 machines each with
different include locations such that the .depend files would be
not compatible.
Comment 1 Sheldon Hearn 2000-01-19 07:49:21 UTC
On Mon, 17 Jan 2000 11:05:09 PST, mjacob@feral.com wrote:

> The problem here is that, at least for building bootstrap tools,
> several derived files that contain platform specific information end
> up in /usr/src- not in OBJDIR. This leads to breakage right away
> because .depend's are radically different between alpha and i386:

It'd be useful to know where these files are and whether they're being
created by the current incarnation of the build process, or whether
they're just old cruft.

Could you send ``find /usr/src -name '.depend' -print'' ? :-)

Ciao,
Sheldon.
Comment 2 Sheldon Hearn 2000-01-19 07:52:25 UTC
On Wed, 19 Jan 2000 09:49:21 +0200, Sheldon Hearn wrote:

> Could you send ``find /usr/src -name '.depend' -print'' ? :-)

Damnit, I meant

	find /usr/src -name '.depend' -ls

Sorry,
Sheldon.
Comment 3 msmith freebsd_committer freebsd_triage 2000-01-22 23:01:07 UTC
Responsible Changed
From-To: freebsd-bugs->marcel

Marcel is the current overseer for work on the world build. 

Comment 4 marcel 2000-07-15 22:41:31 UTC
Matthew,

I can't reproduce the problem (ie can't find any .depend files in
/usr/src). As soon as I have my Alpha I can try some "extended" testing.
In the mean time, can you verify if you still can't share /usr/src
between i386 and Alpha?

thanks,

-- 
Marcel Moolenaar
  mail: marcel@cup.hp.com / marcel@FreeBSD.org
  tel:  (408) 447-4222
Comment 5 Marcel Moolenaar freebsd_committer freebsd_triage 2000-07-23 19:15:12 UTC
State Changed
From-To: open->closed

Unreproducable and no response from originator on any of the 
followups. Having a RO /usr/src is part of the design and 
therefore will be maintained.