Date: Fri, 19 Sep 1997 14:41:17 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: asami@cs.berkeley.edu (Satoshi Asami) Cc: tlambert@primenet.com, gurney_j@resnet.uoregon.edu, dima@tejblum.dnttm.rssi.ru, freebsd-current@freebsd.org Subject: Re: Yet Another bug in src/Makefile Message-ID: <199709191441.HAA05896@usr07.primenet.com> In-Reply-To: <199709190641.XAA10786@silvia.HIP.Berkeley.EDU> from "Satoshi Asami" at Sep 18, 97 11:41:06 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> * There are other builds which also reference out of the build tree; > * anything which references <sys/*> or <machine/*>, in particular, > * references /usr/include. A reference to <machine/*> can't be > * resolved without /usr/include/ since it refers to the postinstalled > * headers from /usr/src/sys/i386/include/ into /usr/include/machine/. > * The <net*/*>, <arpa/*>, <*fs/*>, <rpc*/*>, and <vm/*> references are > * all in this boat, as well as others from package/base installation > * (<tcl/*>, etc.), if installed. > > Terry, you have absolutely no idea what you're talking about. It's > amazing how you could miss every single one of the discussions on this > topic in -current, -stable, -hackers and -committers in the past few > months. I am not talking about ports. Feel free to tell me how, other than making changes to the default arrangement of files, I can build multiple kernel environments. I tend to build a lot of kernel environments, and that means rebuilding libkvm, w, ps, who, netstat, arp, ifconfig, mount, mount_*, and a grundle of other things which depend on kernel "interfaces" exported through /dev/kmem. In order to do this, I have to change the way the build works locally, starting with a lot of symbolic links (which I documented in the discussion you are referencing), but not only symbolic links. I do not *want* to do a "build world" in order to do this. I am *only* changing my kernel, and I want to *only* change things that depend on my kernel (and there are too many of those to suit me, too). I do not want to change out the majority of my build environment for standard programs which are not affected by kernel changes. I sure as hell do not want to rebuild "more", or even do a make install in /usr/src/include. I want to buildd the *absolute* minimum for the delta I am playing with -- and not *one file* more or less than that. I find it really surprising that you can in any way believe a reference to a <machine/*> file can be in any way satisfied by the contents of /usr/src/sys/i386/include, save for me doing a rebuild of my /usr/include directory. Even if I were to do a "-I/usr/src/sys/i386/include" on the compilation command line, it would do me no good: there is no subdirectory named "machine" where the *right* include files may be found. Now you may argue, as I did, that you can create a symlink tree in /usr/include in order to deal with this, one of which would be: ln -s /sys/i386/include /usr/include/machine However, this fails to account for cross-build environments for things like the DEC Alpha and the HP345, which though they do not yet run a pure FreeBSD kernel, can nevertheless be cross-built on a suitably munged-away-from-the-supposedly-correct-defaults FreeBSD system. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709191441.HAA05896>