Closed kpcyrd closed 6 months ago
Thanks for letting me know. I don't have access to any of those architectures, so there's not a ton I can do. However, I'd be happy to accept a PR with the relevant changes
I ground through the tests, looking at both the rust code and the "mysql" (actually mariadb) headers on my system. I have produced a patch that makes the tests pass on i386. I have not yet tested said patch on other architectures.
I came to the following conclusions.
I have attatched the patch, note that so-far this has only been tested on i386, it may well require some tweaking to work on other architectures.
@plugwash Thanks for providing this patch. Could you open a PR with this changes? I think it should be fine to merge that as soon as we are sure that it passes tests on x86_64 and at least one other architecture.
There seemed to be some quite significant differences between the headers on my system and the rust bindings, that were not explained by architecture issues. I strongly suspect that there are significant soundness issues using these bindings with mariadb on any architecture.
The generated bindings are really old, but they seem to work fine as far as I can tell. Now that does not necessarily mean that they are 100% correct nor perfect. I'm certainly open for improvements there, but I would like to see a working CI setup first before doing large changes to this crate. I personally do currently not have the capacity for that, so I'm happy for help there.
This is fixed by #37 by only allowing to use the prebuilt bindings on supported architectures and otherwise suggest to use the buildtime_bindgen
feature to generate matching bindings at build time.
We've encountered test failures in debian on the following architectures:
There might be something wrong with the bindings on these architectures.