Friday, May 13, 2005

OpenSSL 0.9.7g on Solaris (SS20)

firefoxIs quite some time I never check with openssl.org site, the new version is 0.9.7g, which my existing version is 0.9.7e(2004). Since 0.9.7g stated with security changes, I think I better upgrade. Many application link to ssl library, eg. apache and ssh program, I need to recompile these program and make sure it work. I encounter some problems(which I already expected!) while doing the upgrade, the situation is like this:-

I have some 3 Sun machine--Server 1000, SparcStation 20(SS20) and UltraSparc, only the UltraSparc install with compiler. After I compile openssh on the UltraSparc, I was not able to the get run on the other 2 Sun server, the reason is simple, the new openssh binary is a sparc v8+ binary and the SS20 only support v8. The v8+ binary came from openssl library not the openssh.

I encounter the problem about 4 years (yes, 4 years!) ago, when my colleague compile apahce, he is having the same problem, finally he install a compiler on the SS20 and re-compile the apache from there, and solve the problem. Definately there are many ways to solve the problem, I was not able to install a compiler on the SS20, because the machine are just too small.

Let's look at the problem. The common architecture that you can found on Sun machine are v7, v8, v8a, v8+, v9(and above), these architecture are just like x86's 286, 386, 486, 586, 686 and so on. v7 are too just too old(SS20 should be old enough to be abandon too), that it might only found on SunOS 4.x and very old hardware, v9 are new enough that will not give you much problem, so just focus on v8 (v7 v8 v8a are binary compatible, check here) and v8+ which is not compatible.

When I compile openssl on ultrasparc, it always give me v8+ code, may be there is some bugs with the config script during compilation, it doesn't work even though I pass in some parameter to ask openssl to be compile with v8 code. So finally I manually change the config script:-

$ vi config
GUESSOS=sun4m-whatever-solaris2

to force openssl compiled as v8 code, and it works! If you want to know more sun4m or sun4u, check it out here.

If you having a lot of old Sun hardware, you can still find support on the internet, from sunhelp.org, sun solve.

No comments: