Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jun 1997 09:08:38 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@GndRsh.aac.dev.com>
To:        jkh@time.cdrom.com (Jordan K. Hubbard)
Cc:        msmith@atrad.adelaide.edu.au, ache@nagual.pp.ru, asami@cs.berkeley.edu, bde@zeta.org.au, cvs-all@FreeBSD.ORG, cvs-committers@FreeBSD.ORG, cvs-etc@FreeBSD.ORG
Subject:   Re: cvs commit: src/etc/mtree BSD.include.dist
Message-ID:  <199706051608.JAA20298@GndRsh.aac.dev.com>
In-Reply-To: <10588.865472291@time.cdrom.com> from "Jordan K. Hubbard" at "Jun 4, 97 05:58:11 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
> > OK, so we expect to see a new makefile rule at the top level of the
> > kernel source tree that will copy all the includes to the relevant
> > places under /usr/include?
> 
> Yeah.  It's called "make includes" :-)
> 
> Seriously, with SHARED=copies as the default and a couple of anomalies
> like /usr/include/ufs cleaned up, it works pretty well right now.
> 
> 					Jordan

Since I was the one who turned on SHARED=copies and fixed it up to
do the right things way back in the 1.X days for releases I feel I
need to say a few things about why it _is_ a good idea in support
of Jordan here, though I won't go so far as to support ripping
out the SHARED knob.

1)  The reason it was turned on at all was so that a binary distribution
    would include a complete /usr/include tree so that the compiler(s)
    could find them without needing a /sys tree.  In the 386BSD days
    Bill shipped the system with SHARED=symlinks (the Berkeley default
    as far back as I can remember) and it was a FAQ on the list that
    you ``need to install the src distribution to be able to compile
    programs''  (at that time the sources where all in 1 distribution
    pack, some 15 odd floppies if I recall correctly.)

2)  /usr/include containes the interface to the currently running
    /usr/lib and /kernel, _not_ to the current contents of /usr/src.
    /usr/include should be updated when things are installed from
    /usr/src into /usr/lib or a new kernel is installed.  Not one
    second before, as doing so causes a potential miss match
    in API's.

3)  Some day /usr/src is not going to depend on /usr/include, the
    opposite should be true, and can easily be done today with
    the correct setting of SHARED=copies.

4)  I've been running my *BSD systems for 5 years with SHARED=copies
    and have had no problems.  Also all of the systems I build and
    ship have been setup that way and I have yet to here a customer
    have a problem with it.

5)  On a multideveloper machine you do not want one developers
    current edits to /usr/src/sys/param.h that are not in /kernel
    to effect the compilation of some user land program.  (ooppss..
    guess this is the same things as 2 above).

6)  There are still many actual files installed in /usr/include
    when SHARED=symlinks, not all /usr/src changes are instantly
    propogated to /usr/include.  This is an inconsistent nightmare IMHO.

Now, the reason to leave the SHARED knob in (ie, I am just advocating
changing the default from symlinks to copies, until such time as
/usr/src stops depending on /usr/include, at which time the knob
can be ripped out since it would then be pointless.)

1)  A developer working on a kernel/userland interface issue can
    easily save some time buy running with the symlinks.  A
    change in a kernel header file is instantly avaliable to
    test compile the userland utility.

-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation, Inc.                   Reliable computers for FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706051608.JAA20298>