openvdb icon indicating copy to clipboard operation
openvdb copied to clipboard

Enable Houdini CI

Open danrbailey opened this issue 3 years ago • 0 comments

@Idclip - this is a resubmission of #1458 but with one small change on top.

The issue here is the ABI test which works by building a single binary against libopenvdb.so and libopenvdb_sesi.so and attempting to create VDB grids in one library then pass them to the other and vice-versa to detect any ABI issues. This is less rigorous than the various ABI checker tools around, but is intended to replicate the exact situation that we run into if there's an ABI issue.

The libopenvdb.so library builds against libboost_iostream.so.1.73 which in turn builds against the system liblzma.so.5.2.2 (RHEL/CentOS 7). The libopenvdb_sesi.so library builds against libhboost_iostreams.so.1.72 which in turn builds against liblzma.so.5.2.3 which is shipped in the dsolib directory of Houdini.

The problem is that both liblzma.so.5.2.2 and liblzma.so.5.2.3 have the same soname (liblzma.so.5) which means regardless of which one you end up linking against in this ABI test, you are missing symbols that are provided in the other one.

The "proper" solution is to build boost against the same version of lzma as is used in Houdini or perhaps to add a suffix to lzma in one of them. However, I think the pragmatic solution here is to continue with making delayed loading optional (#823) and then to switch it off in these ABI tests because the presence of boost_iostreams is known to not affect ABI.

I should note that because the Houdini CI hasn't been run in a while, it is likely that this will fail until the Weekly build runs successfully (but this change needs to be merged for the cache to be shared with this branch).

(@e4lam)

danrbailey avatar Oct 05 '22 05:10 danrbailey