New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ImportError [...]/_filepath.cpython-39-x86_64-linux-gnu.so: undefined symbol: VSIAllocFilesystemPluginCallbacksStruct #2507
Comments
From /**
* return a VSIFilesystemPluginCallbacksStruct to be populated at runtime with handler callbacks
* @since GDAL 3.0
*/
VSIFilesystemPluginCallbacksStruct CPL_DLL *VSIAllocFilesystemPluginCallbacksStruct( void ); The symbol is not marked as |
Thanks for the report @sebastic ! Do you have any idea how this slipped past our CI tests? |
Likely because the build environments are different. GDAL 3.5.0 is also used in CI, so either that build is different (e.g. older compilers with different behaviour) or my suspicion about the symbol is wrong. CI runs tests from the root of the source tree, pybuild runs the tests from the build directory to which the relevant files from the source tree are copied. |
Rebuilding rasterio with GDAL 3.5.1 resolves the issue, because of this change: OSGeo/gdal@c48fe91 |
@rouault if you have a moment, can you help me understand why this error didn't occur in testing rasterio's manylinux2014, win64 (amd), macos (10.11 deployment target) wheels? Manylinux 2014 would have have a max glibc version of 2.17. |
the whole file is within CPL_C_START / CPL_C_END which expand to extern "C" { ... }, so the symbol is C exported
Perhaps because you build GDAL with autoconf rather than cmake ? (as pointed by @sebastic, GDAL 3.5.0 had an issue in which the file defining VSIAllocFilesystemPluginCallbacksStruct() was not built in CMake builds) |
Thanks @rouault ! |
The test suite fails for the Debian package build:
Expected behavior and actual behavior.
No undefined symbols when importing rasterio.
Steps to reproduce the problem.
Run the testsuite as part of the Debian package build.
Environment Information
Installation Method
Debian package (source package build)
The text was updated successfully, but these errors were encountered: