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

Reply via email to