Re: ppc32_asm for BSD targets

2012-08-13 Thread Andy Polyakov
  Not a definitive answer, but I know we (IBM) never tested the PPC asm 
on BSD.
It's possible that because no one had a PPC machine running BSD to test 
the asm paths they were left disabled.


Correct, the reason for why there is no BSD-ppc is that because there 
was no opportunity to test it. The PPC assembly modules are maintained 
ABI-neutral (i.e. meeting requirements from multiple specifications), 
which means that any additional OS has to be explicitly verified. There 
is no reason to believe that it won't work, but it still has to be 
explicitly verified.


There may be other reasons, but make tests should at least show any 
gross problems.


The only subtle problem I can think of that might be there in recent 
code is use of 64 bit registers in 32 bit code, if the kernel doesn't 
preserve the upper halves of registers you can get clobbered during 
signal handling.


It's not the only subtle potential problem, dereferencing TLS register 
[or any other data anchor register] in signal handler is. While attempt 
to engage ppc_asm and passing 'make test' would show gross problems, it 
won't give definitive answer. What would help is explicit reference to 
ABI your BSD flavour relies on.


On side note. Given previous questions from originator we are talking 
about embedded processor, which is unlike to have 64-bit extensions, so 
upper halves unlikely to be concern here. For reference, the problem 
with upper halves is two-fold: a) preserving upon context switch between 
processes, b) preserving upon signal delivery. a) is commonly taken care 
of by kernel, while b) is handled by disabling signals in ppccap.c.



-owner-openssl-...@openssl.org wrote: -
To: openssl-dev openssl-dev@openssl.org
From: Kevin Fowler
Sent by: owner-openssl-...@openssl.org
Date: 08/04/2012 01:04AM
Subject: ppc32_asm for BSD targets

For the BSD-generic32 target, which gets used for *bsd on ppc cpu, 
Configure script uses ${no_asm}. Other OS's (linux, darwin, AIX) on ppc 
cpu use ${ppc32_asm}.


Are the ppc asm routines not valid for *bsd OS? If so, what about BSD 
invalidates them?


Thanks,
Kevin 

__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   majord...@openssl.org


Re: ppc32_asm for BSD targets

2012-08-03 Thread Peter Waltenberg
 Not a definitive answer, but I know we (IBM) never tested the PPC asm on BSD. It's possible that because no one had a PPC machine running BSD to test the asm paths they were left disabled. There may be other reasons, but make tests should at least show any gross problems.The only subtle problem I can think of that might be there in recent code is use of 64 bit registers in 32 bit code, if the kernel doesn't preserve the upper halves of registers you can get clobbered during signal handling. I don't know enough about current BSD to know if that's a problem or not.Peter-owner-openssl-...@openssl.org wrote: -To: openssl-dev openssl-dev@openssl.orgFrom: Kevin Fowler Sent by: owner-openssl-...@openssl.orgDate: 08/04/2012 01:04AMSubject: ppc32_asm for BSD targetsFor the BSD-generic32 target, which gets used for *bsd on ppc cpu, Configure script uses ${no_asm}. Other OS's (linux, darwin, AIX) on ppc cpu use ${ppc32_asm}.Are the ppc asm routines not valid for *bsd OS? If so, what about BSD invalidates them?
Thanks,Kevin
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   majord...@openssl.org