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

Reply via email to