With my old 32 bit perl,built by default except for prefix, perl -e 'use integer; printf "%d\n",0xffffffff<<32>>32' prints 0. 64 bit perl prints -1.
After rebuilding 32 bit perl with Configuring "-Duse64bitint", output was changed to -1. With this rebuilt 32 bit perl, openssl-1.1.0 "make test" passes. (I checked perl-5.24.0, building both with gcc 5.4.0 & developerstudio12.5 cc, and had the same results.) Regards, --- Kiyoshi <yoi_no_myou...@yahoo.co.jp> > >> Note that a 32-bit Perl can be compiled with or without support for 64-bit > integers. >> That fact hit me once doing OpenSSL builds, some 64-bit constants were not >> calculated correctly, however that showed up at build time so not likely >> to be the case here. However, it might be helpful checking if the 32-bit > perl >> in question supports 64-bit or not. > > Those problems were addressed and both configurations are known to work. > For example 32-bit perl I use by default on Linux is *not* compiled with > 64-bit integers, while 32-bit perl I have on Solaris is. No problem with > either. It appears to me that problem is likely to occur at sign > extension when processing effective addresses. To demonstrate this with > one-liner: > > perl -e 'use integer; printf > "%d\n",0xffffffff<<32>>32' > > It should print -1 in either combination of bitnesses. > > > -- > Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4641 > Please log in as guest with password guest if prompted > -- Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4641 Please log in as guest with password guest if prompted -- openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev