Hello Andrew, the code is still wrong in minisat.h:
typedef int lit; This assumes that int never has more bits then size_t. This is not guaranteed. The x32 ABI uses 32bit addresses and supports 64bit integers (https://lwn.net/Articles/456731/). It depends on the compiler if int has 32 or 64bit. Change the definition to either typedef size_t lit; or typedef ssize_t lit; depending on your need to use signed or unsigned integers. The following line has a typo: /* vector of 32-bit intergers (added for 64-bit portability) */ The following typedef is also wrong. The size of arrays should not be of type int but of type size_t. And int is not guaranteed to be 32bit. Use int32_t if you explicitly need 32bits. typedef struct /* veci_t */ { int size; // this should be size_t int cap; // this should be size_t int* ptr; // this should be int32_t* if you need 32bit } veci; Same bug here: typedef struct /* vecp_t */ { int size; // this should be size_t int cap; // this should be size_t void** ptr; } vecp; Please, carefully review the types used in the whole module. It should make no assumptions about the relative lengths of pointers and integers. Best regards Heinrich Schuchardt On 05/24/2017 10:25 AM, Andrew Makhorin wrote: >> Please see a preliminary non-official release of glpk 4.62 at: >> http://sourceforge.net/projects/noumenon/files/tmp/ >> >> > > I'd very appreciate if someone could test the --minisat option on a > 64-bit platform. To test it just compile and install glpk as usual and > then enter subdirectory glpk/examples/pbn and run glpsol as follows: > > glpsol --minisat -m pbn.mod -d disney.dat > > If glpsol crashes, please report to [email protected] . Thanks. > > > Andrew Makhorin > > > _______________________________________________ > Help-glpk mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/help-glpk > _______________________________________________ Help-glpk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-glpk
