1

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?

2
  • 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, 2017 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. Aug 28, 2017 at 17:00

1 Answer 1

1

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.

1
  • 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. Mar 31, 2018 at 20:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .