Issuetracker : #iXXXXX# CWS : N/A Author : (JCA) Description : FreeBSD porting : Passing $ORIGIN to linker at icu project We also want to pass -rpath $ORIGIN to linker as GNU/Linux and/or Solaris's case. and unbreak the build with ccache gcc33 -O -Wl,-rpath,'$ORIGIN' -o genrb errmsg.o genrb.o parse.o read.o reslist.o ustr.o util.o wrtjava.o rle.o -L../../i18n -licui18n -L../../tools/toolutil -licutoolutil -L../../common -licuuc -L../../data/out -L../../stubdata -licudata -lpthread -lm ../../i18n/libicui18n.so: undefined reference to `vtable for __cxxabiv1::__class_type_info@GLIBCPP_3.2' ../../i18n/libicui18n.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info@GLIBCPP_3.2' ../../i18n/libicui18n.so: undefined reference to `__gxx_personality_v0@CXXABI_1.2' ../../i18n/libicui18n.so: undefined reference to `vtable for __cxxabiv1::__si_class_type_info@GLIBCPP_3.2' ../../i18n/libicui18n.so: undefined reference to `__cxa_pure_virtual@CXXABI_1.2' collect2: ld returned 1 exit status gmake[2]: *** [genrb] Error 1 Index: icu/icu-2.2.patch =================================================================== RCS file: /cvs/external/icu/Attic/icu-2.2.patch,v retrieving revision 1.17.6.2 diff -u -r1.17.6.2 icu-2.2.patch --- icu/icu-2.2.patch 6 Jul 2004 10:40:19 -0000 1.17.6.2 +++ icu/icu-2.2.patch 21 Jun 2006 13:15:33 -0000 @@ -1127,3 +1127,71 @@ return tempGlyphCount; }; +*** misc/icu/source/config/mh-bsd-gcc Thu May 2 08:48:10 2002 +--- misc/build/icu/source/config/mh-bsd-gcc Mon Oct 24 18:21:04 2005 +*************** +*** 10,15 **** +--- 10,18 ---- + GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) + + ## Flags for position independent code ++ STATICCFLAGS = -fPIC ++ STATICCXXFLAGS = -fPIC ++ STATICCPPFLAGS = -DPIC + SHAREDLIBCFLAGS = -fPIC + SHAREDLIBCXXFLAGS = -fPIC + SHAREDLIBCPPFLAGS = -DPIC +*************** +*** 17,22 **** +--- 20,32 ---- + ## Compiler switch to embed a runtime search path + LD_RPATH= + LD_RPATH_PRE= -Wl,-rpath, ++ ++ ## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH ++ ENABLE_RPATH=YES ++ RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN' ++ ++ #SH# ENABLE_RPATH=YES ++ #SH# RPATHLDFLAGS="${LD_RPATH_PRE}'$$ORIGIN'" + + ## Compiler switch to embed a library name + LD_SONAME = -Wl,-soname -Wl,$(MIDDLE_SO_TARGET) +*** misc/icu/source/common/Makefile.in Tue Aug 13 05:30:14 2002 +--- misc/build/icu/source/common/Makefile.in Wed Jun 21 21:58:59 2006 +*************** +*** 142,148 **** + + ifneq ($(ENABLE_SHARED),) + $(FINAL_SO_TARGET): $(OBJECTS) +! $(SHLIB.cc) $(LD_SONAME) -o $@ $^ $(LIBS) + + ifeq ($(OS390BATCH),1) + $(BATCH_TARGET): $(OBJECTS) +--- 142,148 ---- + + ifneq ($(ENABLE_SHARED),) + $(FINAL_SO_TARGET): $(OBJECTS) +! $(SHLIB.c) $(LD_SONAME) -o $@ $^ $(LIBS) + + ifeq ($(OS390BATCH),1) + $(BATCH_TARGET): $(OBJECTS) +*** misc/icu/source/i18n/Makefile.in Wed Aug 14 09:38:40 2002 +--- misc/build/icu/source/i18n/Makefile.in Wed Jun 21 22:07:23 2006 +*************** +*** 134,140 **** + + ifneq ($(ENABLE_SHARED),) + $(FINAL_SO_TARGET): $(OBJECTS) +! $(SHLIB.cc) $(LD_SONAME) -o $@ $^ $(LIBS) + + ifeq ($(OS390BATCH),1) + $(BATCH_TARGET):$(OBJECTS) +--- 134,140 ---- + + ifneq ($(ENABLE_SHARED),) + $(FINAL_SO_TARGET): $(OBJECTS) +! $(SHLIB.c) $(LD_SONAME) -o $@ $^ $(LIBS) + + ifeq ($(OS390BATCH),1) + $(BATCH_TARGET):$(OBJECTS)