[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gfarm-discuss-ja:00275] Re: [gfarm-discuss-ja:00273] Re: Re: solaris10上でのgfarm-1.2.9のコンパイル
- From: Shingo OHKI <ohki@xxxxxxxxxxxx>
- Date: Mon, 6 Mar 2006 19:21:44 +0900
曽田 様
お世話になります。
On 2006/03/06, at 18:06, SODA Noriyuki wrote:
> コンパイル時に利用する libtool コマンドは、
> configure で生成される
> makes/config.mk の中で、
> LIBTOOL = $(SHELL) $(top_builddir)/libtool
> として設定しているのですが、http://www.gnu.org/software/
> libtool/ から
> GNU libtool を別途インストールして、上記の行を
> LIBTOOL = /usr/local/bin/libtool
> のように変更して試してみるという手はあるかもしれません。
> しかし、libtool にもともと、この問題があるとすると、これ
> でも同じ症状が
> 出るだけの可能性もあります。
GNU Libtool 1.5.22と1.9fで試してみました。
1.5.22では、状況は変わらず、1.9fでは、以下のようになりまし
た。
/usr/local/bin/libtool --mode=link gcc -g -O2 -Wall -DDEBUG -I. -
I../../lib/libgfarm/gfutil -I../../lib/libgfarm/gfarm -I../../
include -I../../include -o gfs_hook_no_init_debug.o
lib_tmp_gfs_hook_no_init_debug.la
libtool: link: warning: `-l' and `-L' are ignored for objects
/usr/ccs/bin/ld -r -o gfs_hook_no_init_debug.o -z
allextract ./.libs/lib_tmp_gfs_hook_no_init_debug.a -z defaultextract
gmake[3]: Leaving directory `/opt/gfarm-1.2.9/lib/gfs_hook'
gmake[2]: Leaving directory `/opt/gfarm-1.2.9/lib/gfs_hook'
gmake[1]: Leaving directory `/opt/gfarm-1.2.9/lib'
[ making server ]
gmake[1]: Entering directory `/opt/gfarm-1.2.9/server'
[ making gfmd ]
gmake[2]: Entering directory `/opt/gfarm-1.2.9/server/gfmd'
gcc -g -O2 -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../../
include -I../../include -I../../lib/libgfarm/gfutil -I../../lib/
libgfarm/gfarm -c -o gfmd.o gfmd.c
/usr/local/bin/libtool --mode=link gcc -g -O2 -Wall -
D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../../include -I../../
include -I../../lib/libgfarm/gfutil -I../../lib/libgfarm/gfarm -o
gfmd gfmd.o -L../../lib/libgfarm -lgfarm -R/usr/local/pgsql/lib -L/
usr/local/pgsql/lib -lpq -lssl -lcrypto -lrt -lgen -lcrypt -lsocket -
lnsl
gcc -g -O2 -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../../
include -I../../include -I../../lib/libgfarm/gfutil -I../../lib/
libgfarm/gfarm -o .libs/gfmd gfmd.o -L/opt/gfarm-1.2.9/lib/libgfarm /
opt/gfarm-1.2.9/lib/libgfarm/.libs/libgfarm.so -L/usr/local/pgsql/lib
-lpq -lssl -lcrypto -lrt -lgen -lcrypt -lsocket -lnsl -R/usr/local/
lib -R/usr/local/pgsql/lib
Undefined first referenced
symbol in file
gflog_warning gfmd.o
xxx_connection_fd gfmd.o
GFARM_ERR_PROTOCOL gfmd.o
gfarm_authorize gfmd.o
gfarm_daemon gfmd.o
GFARM_ERR_NO_MEMORY gfmd.o
gflog_set_identifier gfmd.o
gflog_syslog_name_to_facility gfmd.o
xxx_fd_connection_new gfmd.o
gflog_notice gfmd.o
gflog_auth_set_verbose gfmd.o
gfarm_server_initialize gfmd.o
xxx_proto_recv gfmd.o
xxx_proto_send gfmd.o
gflog_syslog_open gfmd.o
gfarm_metadb_server_port gfmd.o
xxx_connection_free gfmd.o
xxx_proto_vrecv gfmd.o
xxx_proto_vsend gfmd.o
xxx_proto_flush gfmd.o
gflog_warning_errno gfmd.o
gfarm_config_set_filename gfmd.o
gflog_fatal gfmd.o
gflog_fatal_errno gfmd.o
gfarm_sockopt_apply_listener gfmd.o
gfarm_unlimit_nofiles gfmd.o
ld: fatal: Symbol referencing errors. No output written to .libs/gfmd
collect2: ld returned 1 exit status
gmake[2]: *** [gfmd] Error 1
gmake[2]: Leaving directory `/opt/gfarm-1.2.9/server/gfmd'
gmake[1]: *** [subdir-all] Error 1
gmake[1]: Leaving directory `/opt/gfarm-1.2.9/server'
gmake: *** [subdir-all] Error 1
> あるいは、ソースコードの lib/Makefile の
> SUBDIRS = \
> libgfarm \
> gfs_hook
> を
> SUBDIRS = \
> libgfarm
> のように変更して、gfs_hook を作成せずに gfarm をビ
> ルドするという方法も
> あります。ただし、この場合、もちろんシステムコールフック機能を
> 用いる
> ことはできません (*1)。gfarm の native API
> を使う必要があります。
>
> (*1) SPARC 版の Solaris の場合、システムコールフック機能
> に制限があり、
> 今のところ opendir(2) に対するフック機能が働かない
> という問題が
> あります。Opteron でも、おそらく同じ問題があると思
> われるため、
> たとえ gfs_hook が作成できたとしても、ls コマ
> ンド等は動作しない
> 可能性が高いと思います。
> --
>
> この部分、記述が足りませんでした。
> 上記のように gfs_hook を作成しない場合、
> gfptool/Makefile についても、
> SUBDIRS = \
> gfcombine \
> gfcombine_hook \
> gfcp \
> gfcp_hook \
> gfgrep \
> gfrepbe_client \
> gfrepbe_server \
> gfsplck \
> $(mpi_targets) \
> util
> を、下記のように変更する必要がありました。
> SUBDIRS = \
> gfcombine \
> gfcp \
> gfgrep \
> gfrepbe_client \
> gfrepbe_server \
> gfsplck \
> $(mpi_targets) \
> util
なるほど。
システムコールフック機能が使えないのは残念ですが、
とりあえず、こちらの方法でコンパイルは通りました。
ひとまず、これで設定して使ってみます。
ご対応ありがとうございます。
大木@理研GSC