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

Re: mail/ja-mh package



Takahiro Kambe writes:
>共有ライブラリの libmh.so で、staticなライブラリ libmts.a や
>libzotnet.a をの関数を参照しています。

${WRKDIR}/.wrapper/bin/gcc が、フラグの順序を変えているためのようです。

gcc -L../sbr -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -Xlinker -rpath -Xlinker /usr/pkg/lib -o xali ali.o aliasbr.o ../config/config.o  -lmh ../mts/libmts.a ../zotnet/libzot.a ../config/version.o 

とリンクしようとしていますが、.wrapper の gcc により
以下のようにフラグが変更されます。

/usr/pkgsrc/mail/ja-mh/work/.gcc/bin/gcc -L../sbr -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib -o xali ali.o aliasbr.o ../config/config.o ../mts/libmts.a ../zotnet/libzot.a ../config/version.o -lmh

末尾のパッチでリンクできると思いますので、お試しください。

>昔は大丈夫で今はダメなのは、なぜ?

以前は USE_BUILDLINK3=YES を指定しないと .wrapper のスクリプトは
使用されなかったと思うのですが、今は常に使用しているため、
リンクできなくなったようです。
(25日に checkout した pkgsrc の mail/ja-mh (ja-mh6-3.03) でも、
同様の原因でリンクに失敗していました。)


--- conf/makefiles/uip.orig	2001-05-30 23:57:47.000000000 +0900
+++ conf/makefiles/uip
@@ -140,7 +140,7 @@ LD	=	LD_LIBRARY_PATH=../sbr @(MHCOMPILER
 LD	=	LD_LIBRARY_PATH=../sbr @(MHCOMPILER)
 @END: FBSDSHLIB
 @BEGIN: GELFSHLIB
-LD	=	@(MHCOMPILER) -L../sbr
+LD	=	@(MHCOMPILER) -L../sbr -L../mts -L../zotnet
 @END: GELFSHLIB
 @END: SHAREDLIB
 @BEGIN: OPTIM
@@ -166,6 +166,10 @@ LDLIBES	=	../config/config.o \
 @BEGIN: SUN4SHLIB
 		-Bdynamic \
 @END: SUN4SHLIB
+@BEGIN: GELFSHLIB
+		@(SLDFLAG) -lmh$(SLIBVER) -lmts -lzot
+IGNORED_LDLIBES	= \
+@END: GELFSHLIB
 		@(SLDFLAG) -lmh$(SLIBVER) ../mts/libmts.a  ../zotnet/libzot.a
 LDLIBS	=	$(LDLIBES) ../config/version.o $(LDOPTLIB)
 LDLIBS_POST =	$(LDLIBES) ../config/version.o $(LDOPTLIB_POST)