[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: shared libraries for NetBSD/powerpc
>current の bsd.lib.mk は ELF はすべて SHLIB_LD{START,END}FILE
>が crt{begin,end}S.o に set されてるみたいですが…
このあたりも含めて、もう一度パッチをまとめます。
# COPT+=-fPIC ってなんだろなー。typo かな。
X はかなりいいかげんですが、NetBSD.cf の最後にでも
#ifdef UseInstalled
#define LinkBuildSonameLibrary(lib) true
#else
#define LinkBuildSonameLibrary(lib) (RemoveFile($(BUILDLIBDIR)/lib); \
cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/lib .)
#endif
#undef SharedLibraryTarget
#define SharedLibraryTarget(libname,rev,solist,down,up) @@\
AllTarget(Concat(lib,libname.so.rev)) @@\
@@\
Concat(lib,libname.so.rev): solist @@\
$(RM) $@~ @@\
$(RM) Concat3(lib,libname,_pic.a) @@\
$(AR) Concat3(lib,libname,_pic.a) solist @@\
SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; \ @@\
(cd down; $(LD) -o up/$@~ -Bshareable -Bsymbolic \ @@\
-soname $$SONAME \ @@\
--whole-archive up/Concat3(lib,libname,_pic.a)); \ @@\
$(RM) $$SONAME; $(LN) $@ $$SONAME; \ @@\
LinkBuildSonameLibrary($$SONAME) @@\
$(RM) $@ @@\
$(MV) $@~ $@ @@\
$(RM) Concat(lib,libname.so) @@\
$(LN) $@ Concat(lib,libname.so) @@\
LinkBuildLibrary($@) @@\
LinkBuildLibrary(Concat(lib,libname.so)) @@\
@@\
clean:: @@\
$(RM) Concat(lib,libname.so.rev)
みたいに書いておくとそれなりにできるようです。面倒になったのでこれ以上
ちゃんとまとめていないのですけど。
話は変わりますが、だれか CardBus のテストしませんか? PowerBook 2400c/180
の TI1130 はついさっき動くようになりました。(って私が書いたんじゃないけど)
# クラッシュさせてもいい PowerMac 8500 があることに気づいたので
# これから shlib化してみます。:-)