[oi-dev] review openssl-1.0

Alexander Pyhalov alp at rsu.ru
Mon Apr 14 15:31:56 UTC 2014


Hello.
I'm working on enabling openssl-1.0 in oi-userland.

Please, review this work:
https://github.com/pyhalov/oi-userland/compare/openssl

The main issue is that we
a) should support legacy software which depends on openssl 0.9.8,
b) can't rebuild the whole OI /hipster .
So, we should provide compatibility package.

The things I've done:
1) resync our code with userland one,
2) added openssl 0.9.8 auxiliary component (the only target used is 
"build").
It's used to build libssl.so.0.9.8 and libcrypto.so.0.9.8 after 
compiling openssl 1.0.
3) massaged openssl 1.0 so that it uses gcc.

I'm a bit worried that gcc and sun cc build options in Configure script 
are different. I can't predict how it affects resulting binaries.

Old Sun Studio config:
"solaris-x86-cc-sunw","cc:-m32 -xO3 -xspace -g 
-Xa::-D_REENTRANT::-lsocket -lnsl -lc:BN_LLONG RC4_CHAR RC4_CHUNK 
DES_PTR DES_UNROLL 
BF_PTR:${x86_elf_asm_sunw}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z 
text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign 
-M/usr/lib/ld/map.noexdata:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"solaris64-x86_64-cc-sunw","cc:-xO3 -m64 -g -xstrconst -Xa 
-DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -lc:SIXTY_FOUR_BIT_LONG 
RC4_CHAR RC4_CHUNK BF_PTR DES_PTR DES_INT 
DES_UNROLL:${x86_64_asm_sunw}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z 
text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign 
-M/usr/lib/ld/map.noexdata:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

default gcc config:
"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -march=pentium -Wall 
-DL_ENDIAN -DOPENSSL_NO_INLINE_ASM::-D_REENTRANT::-lsocket -lnsl 
-ldl:BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_elf_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN 
-DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG 
RC4_CHUNK DES_INT 
DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared 
-static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",

"-ldl" and "-lc" difference doesn't matter, as libdl is just a proxy 
library for libc. However I can't estimate the influence of other options.

Testing done:
1) successfully run apache 2.2 (not recompiled) with new openssl 0.9.8 bits,
2) rebuilt and successfully booted latest illumos-gate
3) oi-build rebuild on-going now, so far no surprises
4) found out that apache 2.4 https doesn't work with any openssl (so 
it's a serious separate issue)

Waiting for your comments. If I don't receive any negative feedback and 
userland build completes without issues, I'm going to commit these bits 
in several few days.
-- 
Best regards,
Alexander Pyhalov,
system administrator of Computer Center of Southern Federal University




More information about the oi-dev mailing list