jails Moving jail between computers with different CPU architectures

I have a jail that I would like to run on different computers with different CPU architectures. For example, on one computer it is an old Intel Haswell, and on another it is an AMD EPYC 7003.

First, this Jail is compiled from source on an AMD EPYC 7003 computer.

Secondly, it contains many C++ libraries (LLVM and others) compiled manually.

Then I transfer this jail to another computer with an Intel Haswell processor. The base system on these computers is exactly the same (13.2) right down to the patch.

Q1: Is it possible that libraries compiled on one computer will not work?

Q2: Are there performance issues with software that was compiled on AMD EPYC when ported to an Intel Haswell CPU?
 
I'm not 100% sure, but I don't believe that buildworld and buildkernel optimize so heavily that you wouldn't be able to switch from amd64 to amd64 of another vendor. If this was the case, you'd be having issues with i.e. moving from an i5 to an i7 processor.

Then again, I'm not a compiler expert. I hope someone with more experience can chime in on this, cause this makes me curious as well.

Unless... did you have anything in /etc/make.conf?
 
  • Thanks
Reactions: dnb
Unless... did you have anything in /etc/make.conf?
Nothing special, just this:
Code:
FORCE_MAKE_JOBS=yes
MAKE_JOBS_NUMBER=64

In general, jail works. The question is related to the fact that this jail lives inside the ZFS dataset and is synchronized between machines using zfs-autobackup. That is, libraries literally compiled on one CPU fly to a computer with another CPU.
 
I have a jail that I would like to run on different computers with different CPU architectures. For example, on one computer it is an old Intel Haswell, and on another it is an AMD EPYC 7003.

First, this Jail is compiled from source on an AMD EPYC 7003 computer.

Secondly, it contains many C++ libraries (LLVM and others) compiled manually.

Then I transfer this jail to another computer with an Intel Haswell processor. The base system on these computers is exactly the same (13.2) right down to the patch.

Q1: Is it possible that libraries compiled on one computer will not work?

Q2: Are there performance issues with software that was compiled on AMD EPYC when ported to an Intel Haswell CPU?

Unless you changed it yourself in /etc/make.conf the compiler options are generic and the compiled binaries will run on all am64 machines.

There are possible exceptions in that some smart distfiles for software might do a processor-specific compilation without asking. I am not aware of one but let's say ffmpeg, that would be a candidate. I don't know what their defaults are these days.

So in other words: you already have the slowest possible binaries.
 
Back
Top