Boolector / boolector

A Satisfiability Modulo Theories (SMT) solver for the theories of fixed-size bit-vectors, arrays and uninterpreted functions.
http://boolector.github.io
Other
324 stars 63 forks source link

PyBoolector not working on ARM64 M1 MAC ? #180

Open EngRaff92 opened 2 years ago

EngRaff92 commented 2 years ago

Having error while installing it as dep of an existing package. Hence the package is not able to find the module name. Any clue on how I could have it sorted ?

mballance commented 2 years ago

I suggest making this an enhancement, since pyboolector is currently only supported on Linux and (x86) macOS platforms, and will be happy to own the work.

EngRaff92 commented 2 years ago

Thanks for the effort and i appreciate the support. Not quite sure about what could be the amount of changes required along with the time needed honestly sometimes is only a matter of switches in the makefile or libraries path. What could be the estimated accomplished? Thanks again for the support

mpreiner commented 2 years ago

@mballance I believe that building pyboolector from source for the pypi packaging is currently broken? Wouldn't it be already sufficient if users could build pyboolector from source via pip if their platform is not yet supported as a pre-built package?

mballance commented 2 years ago

@mpreiner, I agree there are potentially two issues here: support for building the Python package from source (assuming an existing Boolector install on the machine) and direct support for macOS aarch64 binary packages. I'll plan to look at both issues as part of the work I do on this.

benjamintaitapa commented 11 months ago

The more concerning part for me is that pyboolector actually installs correctly for me on M1 Pro Macbook - even generating a pyboolector.cpython-311-darwin.so, but when trying to use it through PyVSC, I get the error symbol not found in flat namespace '_boolector_add'.

Is that because there genuinely isn't that function any more (an ABI change?) or what is happening here? A quick objdump -t /opt/homebrew/lib/python3.11/site-packages/pyboolector.cpython-311-darwin.so | grep _boolector_add shows:

0000000000000000         *UND* _boolector_add

so the symbol is referenced in the section but not defined... I'm not sure what your build script is doing...

@mballance