How to make httpd-2.0.54 on Solaris10
山口です。
httpd-2.0.54が出ていたので、version upしようと思いきや、中々
makeが成功せず、前に進めません。
何か簡単なところでつまづいているような気もするんですが、解決
の糸口がつかめません。という訳で、「こうすればいいかも」な情報
を頂ける事を期待してfj.unixにすがってみます。
どなたか、何かヒントがありましたら教えて下さい。
【症状】
具体的にはhttpd-2.0.54のmake時に
:
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `dlclose@SUNW_1.22'
collect2: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
:
などと怒られてしまいます。*1
【やったこと】
configureの内容は
> cat config.nice
#! /bin/sh
#
# Created by configure
"./configure" \
"--enable-so" \
"--prefix=/path/to/www" \
"$@"
です。
途中、/usr/include/pthread.hの291Lから304Lあたりで文法エラーが
出る*2ので、pthread.hをsrclib/apr/includeへcpし、291Lから304L
までcomment outしてmakeを途中まで無理きり進めています。
また、libgcc_s.so.1がnot foundで-rpathを使えというメッセージが
出たのでbuild/config_vars.mkのAP_LIBSへ-rpathを追加しています。
【環境】
uname -aは
SunOS hoge 5.10 s10_58 i86pc i386 i86pc
です。
gccは
コンフィグオプション: ../gcc-3.3.2/configure --prefix=/opt/sfw/gcc-3
--with-ld=/usr/ccs/bin/ld --with-as=/usr/ccs/bin/as --without-gnu-ld
--without-gnu-as --enable-shared
スレッドモデル: posix
gcc バージョン 3.3.2
です。
【*1】
エラーの詳細は次の通りです。(途中、適宜改行を入れています)
> make
make[2]: Entering directory `/path/to/httpd-2.0.54/support'
/path/to/httpd-2.0.54/srclib/apr/libtool --silent --mode=link gcc -g -O2
-DSOLARIS2=10 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DAP_HAVE_DESIGNATED_INITIALIZER
-I/path/to/httpd-2.0.54/srclib/apr/include -I/path/to/httpd-2.0.54/srclib/apr-util/include
-I/path/to/httpd-2.0.54/srclib/apr-util/xml/expat/lib -I. -I/path/to/httpd-2.0.54/os/unix
-I/path/to/httpd-2.0.54/server/mpm/prefork -I/path/to/httpd-2.0.54/modules/http
-I/path/to/httpd-2.0.54/modules/filters -I/path/to/httpd-2.0.54/modules/proxy
-I/path/to/httpd-2.0.54/include -I/path/to/httpd-2.0.54/modules/generators
-I/path/to/httpd-2.0.54/modules/dav/main -export-dynamic
-L/path/to/httpd-2.0.54/srclib/apr-util/xml/expat/lib -o htpasswd htpasswd.lo
/path/to/httpd-2.0.54/srclib/pcre/libpcre.la
/path/to/httpd-2.0.54/srclib/apr-util/libaprutil-0.la
/path/to/httpd-2.0.54/srclib/apr-util/xml/expat/lib/libexpat.la
/path/to/httpd-2.0.54/srclib/apr/libapr-0.la -lsendfile -lrt -lm -lsocket -lnsl
-lresolv -rpath /opt/sfw/gcc-3/lib
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `dlerror@SUNW_1.22'
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `modf@SYSVABI_1.3'
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `gethostname@SUNWprivate_1.1'
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `isnan@SYSVABI_1.3'
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `dlopen@SUNW_1.22'
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `dlsym@SUNW_1.22'
/path/to/httpd-2.0.54/srclib/apr/.libs/libapr-0.so: undefined reference to `dlclose@SUNW_1.22'
collect2: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
【*2】
*1 エラーはこんなんです。httpd-2.0.52でも出ていました。その時は
comment outしたら上手く誤魔化せた記憶があります。
In file included from ../include/apr_portable.h:47,
from apr_snprintf.c:23:
/usr/include/pthread.h:291: error: parse error before '*' token
/usr/include/pthread.h:292: error: parse error before '*' token
/usr/include/pthread.h:293: error: parse error before '*' token
/usr/include/pthread.h:294: error: parse error before '*' token
/usr/include/pthread.h:295: error: parse error before '*' token
/usr/include/pthread.h:296: error: parse error before '*' token
/usr/include/pthread.h:297: error: parse error before '*' token
/usr/include/pthread.h:298: error: parse error before '*' token
/usr/include/pthread.h:300: error: parse error before '*' token
/usr/include/pthread.h:301: error: parse error before '*' token
/usr/include/pthread.h:303: error: parse error before '*' token
/usr/include/pthread.h:304: error: parse error before '*' token
make[4]: *** [apr_snprintf.lo] Error 1
--
Tadasuke YAMAGUCHI @ Hyogo
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735