Questions tagged [binary-compatibility]

Binary compatibility is generally an ability of two hardware/software systems to run the same binary code without the need to recompile.

184 questions
2
votes
2 answers

Questions about "Binary Compatibility between Visual Studio 2015 and Visual Studio 2017"

https://learn.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=vs-2017 says that C++ Binary Compatibility between Visual Studio 2015 and Visual Studio 2017 is guaranteed except: 1)When static libraries or object files are compiled with…
2
votes
2 answers

Does changing a enum to a class break binary compat

If I have a enum like this: public enum Test { TEST_VALUE(42), OTHER_TEST_VALUE(1337); private int val; Test(int val) { this.val = val; } public void increment() { val++; } public int getVal() { …
ichttt
  • 95
  • 1
  • 1
  • 5
2
votes
2 answers

Issue about "binary compatibility"

When I read Java Language Specification (JLS8) > Binary Compatibility, one of a set changes that doesn't break binary compatibility is: Changing methods or constructors to return values on inputs for which they previously either threw exceptions…
2
votes
0 answers

Implementing unified types across multiple assemblies

I have a situation in which I'd like to implement the same type in multiple assemblies, but have them appear to the compiler to be the "same" type. Why would I want to do this? I am in the process of implementing some of my base class libraries in…
Matthew
  • 155
  • 1
  • 11
2
votes
2 answers

Binary compatibility between VS2017 and VS2015

This SO post: Is Visual-C++-2017 binary compatible with VC++-2015? clearly says that VS 2017 is binary compatible with VS 2015. It even looks like the official position. My question is, in the past, I distinctly remember running into linker errors…
2
votes
1 answer

Can C++ binary code become portable through a native C interface? What are the limitations?

I often use the technique to wrap my high-performance C++ classes with a a thin C layer that I compile to shared libraries, and then load them in other programming languages, such as Python. From my reading here and there, I understand that the only…
The Quantum Physicist
  • 24,987
  • 19
  • 103
  • 189
2
votes
1 answer

Binary compatibility between avr-gcc 3.4.0 and avr-gcc 4.3.x

I have inherited an application that links to a library which MAY HAVE been built with gcc3. Or maybe with the imagecraft compiler. That information has now vanished to the heavenly bitfield and I am left with a libXXX.a library against which to…
Manjabes
  • 1,884
  • 3
  • 17
  • 34
2
votes
2 answers

newer gcc binary running on older systems

I have a binary compiled with gcc 4.4.0 and am trying to run it on an older system, which does not have gcc 4.4.0. It doesn't work. The error is not that it can't find a symbol, but it just doesn't run correctly and hangs. The differences between…
eruditass
  • 123
  • 4
2
votes
4 answers

On which Linux distribution should I link for best binary compatibility?

I'm wondering which Linux distribution would be best (i.e. introduces the least dependencies) when linking a binary that should work on as many distributions as possible against shared libraries. I've done it on Ubuntu, but the list of dependencies…
Noarth
  • 3,981
  • 6
  • 23
  • 16
2
votes
1 answer

C++ properties for opaque data types

I am building a C++ API which needs to be extendable without recompiling the software that uses it (for lots of bad reasons). This requires opaque data types so that fields can be added to classes. Something like struct CheshireCat; // Not defined…
Tuntable
  • 3,276
  • 1
  • 21
  • 26
2
votes
2 answers

including different versions of glib headers

If there are two source files a.c and b.c: a.c includes the glib.h of glib-2.6.6 and b.c includes glib.h of glib-2.12 Then I compile them and link them together and generate target program. Assume that a.c is not using any new feature…
Simon
  • 41
  • 2
2
votes
1 answer

Does deleting the default value of function parameter still keep binary compatibility?

I'm now debugging code but need to keep binary compatibility. There now is a modification about the default value of function parameter. void functionName(const type parameter = class::A::getValue()); Now I want to just change it like this : void…
DONG
  • 59
  • 1
  • 10
2
votes
4 answers

Binary compatibility issue - an example?

As far as I understand the source compatibility and how you can easily show an example that would break source compatibility (change name of the method, remove method etc.), I am having a bit of a problem seeing how binary compatibility can be…
Bober02
  • 15,034
  • 31
  • 92
  • 178
2
votes
2 answers

Is a struct full of function pointers a good solution for C++ binary compatibility?

I have a library written in C++ that I need to turn into a DLL. This library should be able to be modified and recompiled with different compilers and still work. I have read that it's very unlikely that I will achieve full binary compatibility…
CuriousGeorge
  • 7,120
  • 6
  • 42
  • 74
2
votes
3 answers

Does removing an interface break code calling methods on the object?

I need to do some refactoring in Java, and I need to maintain some degree of binary compatibility. In this case I want to remove some legacy interfaces, that are not used anywhere anymore and which require a rather big (and also deprecated) external…
Thilo
  • 257,207
  • 101
  • 511
  • 656