What is easiest way to build a BSD 8 binary on a BSD 7 box?

Peter Steele psteele at maxiscale.com
Sat Feb 6 19:22:16 UTC 2010

I have a BSD 7 system with the full BSD 8 sources loaded on it, and we use this box to build our custom BSD 8 kernel and tools. We do not install the custom code on the BSD 7 box but simply collect the artifacts as a basis for our custom BSD 8 image. I have a standalone tool that has previously been built on this same BSD 7 system, but it just uses gcc and links against the normal BSD 7 libraries that are located on this box.

When we run this tool on a BSD 7 box it works fine. However, we've discovered one function it performs doesn't work properly. It uses kvm_read to collect network statistics and apparently applications that use this function have to be linked against the libraries of the actual target OS. One easy solution of course is to build our tool on a BSD 8 box, and in the long run we'll likely go that route as we move away from BSD 7. Right now though our build server is BSD 7 and we need to build this tool against BSD 8 libraries. This obviously can be done since "make world" does exactly that-it builds everything against 8.0 objects even if the build is done on a BSD 7 box.

Without dissecting the magic going on in "make world", can any explain how I could do the same thing with my standalone tool? Specifically, build it on a BSD 7 box but link it against BSD 8 libraries.

More information about the freebsd-questions mailing list