前回コンパイルした OpenSSL を使うと、後で御紹介する httpd のコンパイル時に、例えば、
/usr/local/ssl/lib/libcrypto.a(c_zlib.o): In function `bio_zlib_free':
c_zlib.c:(.text+0x6f): undefined reference to `inflateEnd'
c_zlib.c:(.text+0x8b): undefined reference to `deflateEnd'
のようにlibcrypto.a で名前の解決できないものがあることが分かりました。ここで利用している、coLinux の Fedora14では起こりますが、最近のバージョンでは解決しているかもしれません。
そこで、config のオプションを変えてみます。(以下では、shared が無くても結果は同じです。)
$ ./config -I/usr/local/include -L/usr/local/lib shared zlib-dynamic
..........
$ make
..........
$ make test
.............................
zlib
3075692168:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(libz.so): libz.so: cannot open shared object file: No such file or directory
3075692168:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
3075692168:error:29064065:lib(41):BIO_ZLIB_NEW:zlib not supported:c_zlib.c:478:
3074303624:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(libz.so): libz.so: cannot open shared object file: No such file or directory
3074303624:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
3074303624:error:29064065:lib(41):BIO_ZLIB_NEW:zlib not supported:c_zlib.c:478:
cmp: EOF on ./p.zlib.clear
make[1]: *** [test_enc] Error 1
make[1]: Leaving directory `/home/espiya/src/openssl-1.0.1c/test'
make: *** [tests] Error 2
$
このようにテストでエラーになります。zlib 周りで何かあるようですから、こちらの環境では、OpenSSL 1.0.1c コンパイル時に zlib を指定するのは止めて、以下のように修正します。
$ ./config shared
..........
$ make
..........
$ make test
..............................
Zlib not supported: compression tests skipped
ALL TESTS SUCCESSFUL.
make[1]: Leaving directory `/home/espiya/src/openssl-1.0.1c/test'
OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a
OpenSSL 1.0.1c 10 May 2012
built on: Tue Jun 5 10:21:24 EDT 2012
platform: linux-elf
options: bn(64,32) rc4(8x,mmx) des(ptr,risc1,16,long) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/local/ssl"
$
# make install 2>&1 |tee Install.log
Zlib はサポートされない OpenSSL ですが、今後はこれを使用することにします。
/usr/local/ssl/lib/libcrypto.a(c_zlib.o): In function `bio_zlib_free':
c_zlib.c:(.text+0x6f): undefined reference to `inflateEnd'
c_zlib.c:(.text+0x8b): undefined reference to `deflateEnd'
のようにlibcrypto.a で名前の解決できないものがあることが分かりました。ここで利用している、coLinux の Fedora14では起こりますが、最近のバージョンでは解決しているかもしれません。
そこで、config のオプションを変えてみます。(以下では、shared が無くても結果は同じです。)
$ ./config -I/usr/local/include -L/usr/local/lib shared zlib-dynamic
..........
$ make
..........
$ make test
.............................
zlib
3075692168:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(libz.so): libz.so: cannot open shared object file: No such file or directory
3075692168:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
3075692168:error:29064065:lib(41):BIO_ZLIB_NEW:zlib not supported:c_zlib.c:478:
3074303624:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(libz.so): libz.so: cannot open shared object file: No such file or directory
3074303624:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
3074303624:error:29064065:lib(41):BIO_ZLIB_NEW:zlib not supported:c_zlib.c:478:
cmp: EOF on ./p.zlib.clear
make[1]: *** [test_enc] Error 1
make[1]: Leaving directory `/home/espiya/src/openssl-1.0.1c/test'
make: *** [tests] Error 2
$
このようにテストでエラーになります。zlib 周りで何かあるようですから、こちらの環境では、OpenSSL 1.0.1c コンパイル時に zlib を指定するのは止めて、以下のように修正します。
$ ./config shared
..........
$ make
..........
$ make test
..............................
Zlib not supported: compression tests skipped
ALL TESTS SUCCESSFUL.
make[1]: Leaving directory `/home/espiya/src/openssl-1.0.1c/test'
OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a
OpenSSL 1.0.1c 10 May 2012
built on: Tue Jun 5 10:21:24 EDT 2012
platform: linux-elf
options: bn(64,32) rc4(8x,mmx) des(ptr,risc1,16,long) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/local/ssl"
$
# make install 2>&1 |tee Install.log
Zlib はサポートされない OpenSSL ですが、今後はこれを使用することにします。