[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1063349: libamd-comgr2 exports wrong symbol version



On 2024-02-06 14:28, Christian Kastner wrote:
> As discussed in this thread [1], libamd-comgr2 exports
> amd_comgr_get_isa_count@1.8 when upstream is at @2.0.
> 
> This is because the symbol was erroneously not removed from @1.8 when it
> was added to @2.0 when the ABI changed.

Following [1] (bottom example), I updated the patch restoring the old
symbol with the suggested trickery, and together with the restored
export map, this seems to have worked.

unstable:
  $nm -gD /usr/lib/x86_64-linux-gnu/libamd_comgr.so.2.4.0 | grep isa_count
  00000000005cbd10 T amd_comgr_get_isa_count@@amd_comgr_1.8

experimental+updated patch:
  $ nm -gD /usr/lib/x86_64-linux-gnu/libamd_comgr.so.2.6.0 | grep isa_count
  0000000000491d70 T amd_comgr_get_isa_count@@amd_comgr_2.0
  0000000000491d70 T amd_comgr_get_isa_count@amd_comgr_1.8

To test this, I compiled a minimal test program using the old version.
Then I updated the library, and compiled a new test program. The old
program continued to work fine with @1.8, and the new one used @2.0.

I'm not sure how portable this is, but this is localized to us anyway.

Best,
Christian

[1] https://gcc.gnu.org/wiki/SymbolVersioning


Reply to: