On Mon, Aug 31, 2015 at 16:49:53 +0200, Jakub Jelinek wrote:
> 1) Is the library backwards ABI compatible? Can you run e.g.
> libabigail abidiff in between the unpatched and patched version?
It should be in theory, and I've successfully tested an old binary with old
libgomp plugin and with new liboffloadmic. However, `abidiff --changed-fns
old/liboffloadmic_host.so new/liboffloadmic_host.so` prints:
Functions changes summary: 0 Removed (82 filtered out), 7 Changed (21 filtered
out), 0 Added functions (1081 filtered out)
Variables changes summary: 0 Removed (25 filtered out), 1 Changed, 0 Added
variables (7 filtered out)
Function symbols changes summary: 7 Removed, 76 Added function symbols not
referenced by debug info
Variable symbols changes summary: 22 Removed, 4 Added variable symbols not
referenced by debug info
7 functions with some indirect sub-type change:
/* Unused functions skipped. */
[C]'function int __offload_offload(OFFLOAD, const char*, int, int, VarDesc*,
VarDesc2*, int, int)' has some indirect sub-type changes:
parameter 1 of type 'typedef OFFLOAD' has sub-type changes:
underlying type 'OffloadDescriptor*' changed:
in pointed to type 'struct OffloadDescriptor':
type size changed from 2240 to 2368 bits
9 data member insertions:
/* ... */
[C]'function void __offload_register_image()' has some indirect sub-type
changes:
return type changed:
type name changed from 'void' to 'bool'
type size changed from 0 to 8 bits
abidiff: ../../src/abg-comparison.cc:10731: virtual void
abigail::comparison::fn_parm_diff::report(std::ostream&, const string&) const:
Assertion `get_type_diff() && get_type_diff()->to_be_reported()' failed.
Aborted (core dumped)
> 2) the *.map changes look wrong, when adding symbols to a symbol versioned
> shared library, new symbols shouldn't be added to existing symbol
> version, but to a new symbol version (so e.g. MYO_1.0.1 (or MYO_1.1)
> and COI_1.0.1 (or COI_1.1))
I agree, but this is what I can't change - these files are copied from real COI/
MYO libraries, therefore the emulator (fake COI/MYO libs) must have the same
versions as the real libs.
-- Ilya