[Discuss] MS Buys GitHub
Alan W. Irwin
Alan.W.Irwin1234 at gmail.com
Fri Jun 8 16:23:38 PDT 2018
On 2018-06-08 14:45-0700 Cy Schubert wrote:
[....]
> A good example [of an ABI difference] might be if the ordering of a struct has
> changed but not the contents. The API (source code interface) remains
> the same but the ABI (binary code interface) is different.
Nice example, Cy.
And I am sure you know all about this, but for the benefit of the rest
here, the other ABI incompatibility example that I have run into in
the past as a cross-platform developer is that for *the same code*
different compilers and even different versions of the same compiler
can store the same information in different ways ==> ABI
incompatibility. So for example, the GTK+ developers make their suite
of libraries available on Windows, but if you don't use a compiler
with the same ABI to build your GTK+ application, then you get
segfaults at run time due to that ABI incompatibility.
Note, that Linux distributions are generally extremely aware of ABI
issues that are caused by compiler version changes so it is rare to
see such issues on Linux distributions. However, recently a PLplot
colleague of mine ran into exactly such an issue on the
MinGW-w64/MSYS2 distribution of free software for Windows. But the
developers of that distribution are fairly new to the game so such
MinGW-w64/MSYS2 ABI issues can be forgiven if they learn quickly to be
a lot more cautious about how they change gcc compiler suite versions.
Alan
__________________________
Alan W. Irwin
Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________
Linux-powered Science
__________________________
More information about the Discuss
mailing list