On Thu, Jan 29, 2015 at 05:31:02PM -0800, Eliot Miranda wrote:
Hi David,
you might look at latforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.c in
the Cog branch. It uses e.g.
if(ssl->loglevel) printf("sqAcceptSSL: cert = %p\n", cert);
instead of
if(ssl->loglevel) printf("sqAcceptSSL: cert = %lx\n", (long)cert);
which is preferrable, as cert is a pointer. The Cog version definitely compiles on 64-bit; I'm running a 64-bit Spur Stack VM regularly.
Thanks, that looks much better, but:
/home/lewis/squeak/VM/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.c:175:2: warning: format ‘%p’ expects argument of type ‘void *’, but argument 2 has type ‘sqInt’ [-Wformat=] if(ssl->loglevel) printf("sqConnectSSL: BIO_write %p bytes\n", srcLen); ^
So some further type declarations may be required.
The issue I was dealing with was sizeof(sqInt) == 8, but declaring pointers properly in both the slang and platforms code is probably also needed.
I will try to follow up in it this weekend.
Thanks, Dave