Java bindings fail to load because of unresolved symbol "lasso_log"
The Red Hat RPM runs "make check" which fails. I tracked the problem down to the invocation of AllJunitTests in the Java binding directory. The test fails because the loader cannot resolve the lasso_log symbol. In Linux normally the loader performs lazy binding and does not try to resolve a symbol until first reference which is probably why this problem has not been seen before. But if the loader is told to resolve all symbols at load time it will fail. Apparently something in our tool chain is enabling this during testing. You can see the behavior yourself if you add
to the start of AllJunitTests.
The same issue appears to have arisen in the PHP binding and was resolved in commit e0bda691 by adding a macro to define lasso_log.
lasso_log is referenced in jobject_to_gobject() because of the
lasso_assign_gobject macro, which includes the lasso_release_gobject
macro which invokes the message macro which expands to lasso_log.
Updated by Benjamin Dauvergne over 7 years ago
- Status changed from Nouveau to Solution déployée
- Target version set to 318
commit d8e3ae85044a23424e8fcccc4af2ce7ce883ef74 Author: John Dennis <email@example.com> Date: Tue Feb 23 20:00:45 2016 -0500 add inline implementation of lasso_log lasso_log is a private function of lasso and as such cannot be referenced by the loader. This is equivalent to commit e0bda691 in the PHP binding which exhibited the same problem. lasso_log is referenced in jobject_to_gobject() because of lasso_assign_gobject macro, which includes the lasso_release_gobject macro which invokes the message macro which expands to lasso_log. License: MIT Signed-off-by: John Dennis <firstname.lastname@example.org>