We have very old FreeBSD build systems (6.3) which we use to maintain backwards compatibility with the system libraries for our proprietary binaries and avoid building on each and every FreeBSD version.

Question: Is it technically possible to install a fresh FreeBSD 11.x and jail the old system on it? Or will there be issues due to incompatible system calls?

I think to remember some - supposedly breaking - change of the kernel interface with respect to the size of time_t or so. Are there any such changes that would break old binaries relying on the old syscall or would that merely affect newly built/linked binaries which are tied to the (corresponding) new syscall?

  • Have you tried building a virtual machine to run the FreeBSD 6.3 version inside the FreeBSD 11.x version? I'm thinking of VirtualBox from oracle, or something along those lines. – bakoyaro Aug 28 '17 at 16:56
  • Well, bhyve would come to mind then, given it's 11.x. However, jails come at a lower cost (overhead) and that's what we're striving for here. So instead of going full hypervisor, we'd like to leverage the "FreeBSD way", but are unsure about whether this is at all possible. Of course, a proper hypervisor would be a last resort, but I hope a better option exists. – 0xC0000022L Aug 28 '17 at 17:00

I think bhyve is your first resort, not your last. If you jail your build environment, then you're testing your product against a 6.3 world and libraries, with an 11.x kernel. Your customers however, will be running a 6.3 world/libs and a 6.3 kernel.

Differences between the 6.3 and 11.x kernels can be expected to increase over time, I would imagine. This could conceivably lead to situations such as one in which your test jail's 11.x kernel Does The Right Thing, but your customer's 6.3 kernel doesn't, and therefore, you can't reproduce your customer's problem report.

IMO, bhyve is the best tool for this job.

  • Thanks for taking the time to answer. Well, for starters the customer won't share any customizations, so their kernel may regardless fail in mysterious ways. Also, I am talking about the build, even though testing will also be required. But I presume you may have a point. I was just expecting a little more forward compatibility of the underlying libc. Because after all I am "only" expecting the 6.3 userland to work on a newer kernel. I suspected that wouldn't be as much of a problem as you make it sound. – 0xC0000022L Mar 31 '18 at 20:51

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.