[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00652] Re: problem with shared library



濱嶋です。

Wed, 25 Jul 2001 16:38:47 +0900 (JST) に
aono@cc.osaka-kyoiku.ac.jp さんが書かれた
<200107250738.QAA10256@ikoma.cc.osaka-kyoiku.ac.jp> を引用しています

> <20010725.145740.68545841.hamajima@nagoya.ydc.co.jp>の記事において
> hamajima@nagoya.ydc.co.jpさんは書きました。
> 
>>> ○その1
>>> configure.inで WNNJLIB="\$(WNNJLIBSRC)/libwnn.la" とやっているので、
>>> ELFではインストール先でなくリンクしたshared libraryがそのまま使われてし
>>> まう。

私がlibtoolのことをわかっていないので変なことをいっぱい書いてしまいまし
たが、FreeWnn-1.1.1-a018ではこうなります。当然インストールしてもこのパス
のままです。

% ldd .libs/wnnkill
.libs/wnnkill:
         /home/hamajima/src/FreeWnn/FreeWnn-1.1.1-a017-pl4/Xsi/Wnn/jlib/.libs/libwnn.so => /home/hamajima/src/FreeWnn/FreeWnn-1.1.1-a017-pl4/Xsi/Wnn/jlib/.libs/libwnn.so
         -lcrypt.0 => /usr/lib/libcrypt.so.0
         -lc.12 => /usr/lib/libc.so.12

# ちなみにこのバージョンでは--mode-executeは使えません。
# % ../../libtool --mode-execute ldd wnnkill
# libtool: unrecognized option `--mode-execute'
# Try `libtool --help' for more information.


・結論
libtoolのバージョンが古くて、OSの最新バージョンに対応していない

・対策
libtoolのバージョンアップ


> ##NetBSDはldconfigで設定するプラットフォームでしたっけ。

aoutなアーキテクチャはそうです。そうでない(ELF)のも多数あります。

>>> ○その2
>>> トップのMakefile.inでインストール時だけ DESTDIR=$(DESTDIR) をしている。
>>> ELFの場合にはDESTDIRを指定されると -rpath で指定したパスと違うところにイ
>>> ンストールされるので動かなくなってしまう。

install時しかDESTDIRが設定されないので問題ないのですが、DESTDIRをfake
installに使うのなら本来はまずい個所があります。

それからトップでmakeしても作られないkankanaというコマンドのリンクするラ
イブラリが不足しています。


diff -ru Xsi.orig/Wnn/jlib/Makefile.in Xsi/Wnn/jlib/Makefile.in
--- Xsi.orig/Wnn/jlib/Makefile.in	Tue Jul 24 16:21:12 2001
+++ Xsi/Wnn/jlib/Makefile.in	Wed Jul 25 16:56:09 2001
@@ -110,7 +110,7 @@
 
 kankana: kankana.o
 	$(RM) $@
-	$(LIBTOOL) $(CCLINK) -o $@ $(LDOPTIONS) kankana.o $(WNNJLIB)
+	$(LIBTOOL) $(CCLINK) -o $@ $(LDOPTIONS) kankana.o $(WNNJLIB) @LIBS@
 
 clean::
 	$(RM) kankana
@@ -118,7 +118,7 @@
 all:: libwnn.la
 
 libwnn.la: $(OBJS) $(EXTRALIBRARYDEPS)
-	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(DESTDIR)$(WNNLIBDIR) -version-info $(WNNJLIBVERSION)
+	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(WNNLIBDIR) -version-info $(WNNJLIBVERSION)
 
 lintlib:: llib-lwnn.ln
 
diff -ru Xsi.orig/Wnn/jlib.V3/Makefile.in Xsi/Wnn/jlib.V3/Makefile.in
--- Xsi.orig/Wnn/jlib.V3/Makefile.in	Tue Jul 24 16:21:12 2001
+++ Xsi/Wnn/jlib.V3/Makefile.in	Wed Jul 25 16:03:01 2001
@@ -81,7 +81,7 @@
 all:: libjd.la
 
 libjd.la: $(OBJS) $(EXTRALIBRARYDEPS)
-	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(DESTDIR)$(WNNLIBDIR) -version-info $(WNNJLIBVERSION)
+	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(WNNLIBDIR) -version-info $(WNNJLIBVERSION)
 
 lintlib:: llib-ljd.ln
 
diff -ru Xsi.orig/cWnn/jlib/Makefile.in Xsi/cWnn/jlib/Makefile.in
--- Xsi.orig/cWnn/jlib/Makefile.in	Tue Jul 24 16:21:14 2001
+++ Xsi/cWnn/jlib/Makefile.in	Wed Jul 25 17:01:50 2001
@@ -168,7 +168,7 @@
 
 kankana: kankana.o
 	$(RM) $@
-	$(LIBTOOL) $(CCLINK) -o $@ $(LDOPTIONS) kankana.o $(CWNNJLIB)
+	$(LIBTOOL) $(CCLINK) -o $@ $(LDOPTIONS) kankana.o $(CWNNJLIB) @LIBS@
 
 clean::
 	$(RM) kankana
@@ -176,7 +176,7 @@
 all:: libcwnn.la
 
 libcwnn.la: $(OBJS) $(EXTRALIBRARYDEPS)
-	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(DESTDIR)$(WNNLIBDIR) -version-info $(CWNNJLIBVERSION)
+	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(WNNLIBDIR) -version-info $(CWNNJLIBVERSION)
 
 lintlib:: llib-lcwnn.ln
 
diff -ru Xsi.orig/kWnn/jlib/Makefile.in Xsi/kWnn/jlib/Makefile.in
--- Xsi.orig/kWnn/jlib/Makefile.in	Tue Jul 24 16:21:15 2001
+++ Xsi/kWnn/jlib/Makefile.in	Wed Jul 25 15:53:52 2001
@@ -163,7 +163,7 @@
 all:: libkwnn.la
 
 libkwnn.la: $(OBJS) $(EXTRALIBRARYDEPS)
-	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(DESTDIR)$(WNNLIBDIR) -version-info $(KWNNJLIBVERSION)
+	$(LIBTOOL) $(CC) -o $@ $(OBJS:.o=.lo) -rpath $(WNNLIBDIR) -version-info $(KWNNJLIBVERSION)
 
 lintlib:: llib-lkwnn.ln
 


http://www.freewnn.org/ FreeWnn Project