Binary compatibility is generally an ability of two hardware/software systems to run the same binary code without the need to recompile.
Questions tagged [binary-compatibility]
184 questions
261
votes
21 answers
What causes java.lang.IncompatibleClassChangeError?
I'm packaging a Java library as a JAR, and it's throwing many java.lang.IncompatibleClassChangeErrors when I try to invoke methods from it. These errors seem to appear at random. What kinds of problems could be causing this error?

Zombies
- 25,039
- 43
- 140
- 225
91
votes
3 answers
__cdecl or __stdcall on Windows?
I'm currently developing a C++ library for Windows which will be distributed as a DLL. My goal is to maximize binary interoperability; more precisely, the functions in my DLL must be usable from code compiled with multiple versions of MSVC++ and…

Etienne Dechamps
- 24,037
- 4
- 32
- 31
77
votes
8 answers
Is JDK "upward" or "backward" compatible?
Backward binary compatibility (or downward compatibility) - an ability of clients built with an old version of library API to run on a new one (wiki).
Upward binary compatibility (or forward compatibility) - an ability of clients built with a new…

linuxbuild
- 15,843
- 6
- 60
- 87
39
votes
5 answers
How to design a C++ API for binary compatible extensibility
I am designing an API for a C++ library which will be distributed in a dll / shared object. The library contains polymorhic classes with virtual functions. I am concerned that if I expose these virtual functions on the DLL API, I cut myself from the…

shojtsy
- 1,710
- 3
- 17
- 24
34
votes
3 answers
How compatible are different versions of glibc?
Specifically:
Is it assured somehow that all versions of glibc 2.x are binary compatible?
If not, how can I run a binary (game) on my system which has been compiled for a different version? Can I install glibc in a different folder?
My specific…

Aaron Digulla
- 321,842
- 108
- 597
- 820
29
votes
3 answers
Using Scala 2.12 with Spark 2.x
At the Spark 2.1 docs it's mentioned that
Spark runs on Java 7+, Python 2.6+/3.4+ and R 3.1+. For the Scala API, Spark 2.1.0 uses Scala 2.11. You will need to use a compatible Scala version (2.11.x).
at the Scala 2.12 release news it's also…

NetanelRabinowitz
- 1,534
- 2
- 14
- 26
25
votes
10 answers
Linux distribution binary compatibility
Any way to make a binary in a Linux distribution and run it on another distribution with same architecture? Or I should compile and build it on different distributions?
Is there any compatibility between Redhat, Debian based distributions for binary…

Hosi
- 545
- 2
- 7
- 16
23
votes
4 answers
Good practices for writing C dynamic libraries [DSOs] (binary compatibility + memory management)
I have some experience writing C libraries but I've never read any formal documents describing good practices while writing such libraries. My question pertains around mainly 2 topics:
How to maintain binary compatibility? (I've heard of the pImpl…

void_ptr
- 472
- 3
- 9
22
votes
2 answers
What would I lose by abandoning the standard EventHandler pattern in .NET?
There's a standard pattern for events in .NET - they use a delegate type that takes a plain object called sender and then the actual "payload" in a second parameter, which should be derived from EventArgs.
The rationale for the second parameter…

Daniel Earwicker
- 114,894
- 38
- 205
- 284
21
votes
3 answers
Does adding a new dependency to a library, with compatible API changes, affect binary compatibility?
My question:
Does adding a new dependency to a library affect binary compatibility, as long as the library's external API is otherwise backwards compatible?
My situation:
My CBOR library contains classes for arbitrary-precision arithmetic (in the…

Peter O.
- 32,158
- 14
- 82
- 96
21
votes
3 answers
Tool for backwards compatibility for the C#/.NET API?
I found this tool, http://sab39.netreach.com/Software/Japitools/JDK-Results/46/, which checks for backwards compatibility between different versions of APIs for Java using javadoc.
Is there an tool equivalent to this one for C#/.NET?
Here is an…

Ovidiu Buligan
- 2,784
- 1
- 28
- 37
21
votes
6 answers
Scala: binary incompatibility between releases
Why is Scala binary incompatible between different releases?

Mohamed Bana
- 1,251
- 2
- 17
- 27
20
votes
5 answers
COM in the non-Windows world?
Hope this question isn't going to be too vague. Reading through the COM spec and Don Box's Essential COM book, there is plenty of talk of the "problems that COM solves" - and they all sound important, relevant and current.
So how are the problems…

Maria Boghiu
- 483
- 3
- 9
19
votes
6 answers
How to identify a missing method (Binary Compatibility) in a JAR statically
I want to verify binary compatibility between 2 JARs.
Following the suggestions in this answer I used jboss tattletale but it can find only missing classes.
How can I find if there are missing methods? Is it possible at all?
E.g.
"Depends - on"…

Eran Medan
- 44,555
- 61
- 184
- 276
16
votes
3 answers
Retrofitting void methods to return its argument to facilitate fluency: breaking change?
"API design is like sex: make one mistake and support it for the rest of your life" (Josh Bloch on twitter)
There are many design mistakes in the Java library. Stack extends Vector (discussion), and we can't fix that without causing breakage. We…

polygenelubricants
- 376,812
- 128
- 561
- 623