1

Will binaries compiled on Jessie work on Stretch? What about the reverse?

The program in question is written in C++ (thus depends on the C++ standard library), but has no other external dependencies.

1

Will binaries compiled on Jessie work on Stretch?

They should, yes. Glibc has a pretty high degree of backward ABI (application binary interface) compatibility.

Other libraries may not have that, but if there is any trouble you can always install an older version alongside the new one -- possibly ripping it precompiled from a jessie package.

What about the reverse? The program in question is written in C++...

This may have more to do with how much new fangled C++ you use in relation to features implemented in the compiler. I think most if not all of C++ 11 was in the last jessie compiler, and implementation of C++ 14/17 continues. But you will be very aware of this if it applies.

However, beware that forward ABI compatibility is generally not a goal with any library, so this could be an issue anyway.

  • I have a small scientific software package (actually it's for Mathematica), and I also provide RPi binaries (so people don't have to compile it themselves, which is painful to setup and takes 1+ hr). I am simply trying to decide when to upgrade to Stretch. I am perfectly happy with Jessie for now and the only concern is to maximize the compatibility of my package. It sounds like it's better if I stay on Jessie for a few more months. – Szabolcs Oct 4 '17 at 14:11
  • You really should provide two packages. Pretty sure all of the distro packages get recompiled even when there is no version change. – goldilocks Oct 4 '17 at 14:12
  • Of course that's what one would do in an ideal world, but I definitely cannot provide two packages. I do not have the time and resources, and the Raspberry Pi is already the lowest priority target. I can barely keep up with x86_64 Linux/OSX/Windows versions. It has to be either Jessie or Stretch, but not both. – Szabolcs Oct 4 '17 at 14:15
  • I should really take that back. To be fair most third party binary packages for linux are distributed just targeting hardware (e.g. x86_64) or at best come in generic .rpm and/or .deb files without any specific distro version. You just state your prereq (upstream) versions. I think it is mostly just the distros themselves that provide per version things. – goldilocks Oct 4 '17 at 14:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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