> Why does Solaris 10 on SparcIII not suffer from this problem, is > unclear to me.
Because there is a shortcut. VIS2-capable CPUs are excused from libdevinfo voodoo and USIII is VIS2-capable CPU. Because all so-far observed VIS2-capable CPUs has identical qualities from OpenSSL viewpoint. VIS2 capability is determined with sysinfo(SI_ISALIST). > Unfortunatelly, (our) support for Solaris is system limited, and we > do not have a contract on our UltraII box :-( I can’t ask Sun for a > fix. Can you please provide me the sources for reproduction on > Solaris x86. Can't you write following yourself: #include <libdevinfo.h> static int walk_nodename(di_node_t node, void *p) { return DI_WALK_CONTINUE; } int main() { di_node_t root_node; if ((root_node = di_init("/",DINFOSUBTREE))!=DI_NODE_NIL) { di_walk_node(root_node,DI_WALK_SIBFIRST, NULL,walk_nodename); di_fini(root_node); } } Link with -ldevinfo - works, with -ldevinfo -lmalloc - crashes. > As act of desperation I've added call to mallopt(M_KEEP,0) prior dlopen > and SIGSEGV ... gone. Can you check this with your application? Note > that it wouldn't work to add the call to your main() function, because > OPENSSL_cpuid is called earlier from .init segment. You have to add it > to OPENSSL_cpuid_setup in crypto/sparcv9cap.c... Pleeeeeeeaaaaase. It's also possible to switch to the detection procedure used on Linux (in which case it might have to be refined). This procedure relies on SIGILL to determine CPU capabilities. A. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org