On Fri, Jan 28, 2011 at 05:37:51PM -0800, Garrett Cooper wrote: > On Fri, Jan 28, 2011 at 3:58 PM, Alexey Shuvaev > <shuvaev_at_physik.uni-wuerzburg.de> wrote: > > Hello! > > > > It seems www/seamonkey2 is broken on CURRENT for at least 1 month now [1]. > > Examining build log and reproducing it locally, the problem is in the > > usage of libiconv in nsNativeCharsetUtils.cpp. The linker fails to > > produce libxpcom_core.so although -L/usr/local/lib and -liconv > > are specified [2]. Examining this further I found that nsNativeCharsetUtils.o > > produced with [3] fails to link with libiconv alone too [4] (note > > still unresolved libiconv references). > > I'm not a compiler/linker guru and do not understand what is happening > > here. As a workaroud I use the attached patch which disables the usage > > of libiconv in nsNativeCharsetUtils.cpp. > > ls /usr/local/lib/libiconv*so* ? > ~> ll /usr/local/lib/libiconv*so* lrwxr-xr-x 1 root wheel 13 Jan 27 13:14 /usr/local/lib/libiconv.so -> libiconv.so.3 -r--r--r-- 1 root wheel 1078567 Jan 27 13:14 /usr/local/lib/libiconv.so.3 I'm not so lame :) On Sat, Jan 29, 2011 at 01:39:15PM -0500, Alexander Kabaev wrote: > On Sat, 29 Jan 2011 13:21:44 -0500 > Alexander Kabaev <kabaev_at_gmail.com> wrote: > > > On Sat, 29 Jan 2011 13:02:24 -0500 (EST) > > Daniel Eischen <deischen_at_freebsd.org> wrote: > > > > > On Sat, 29 Jan 2011, Alexey Shuvaev wrote: > > > > > > > Hello! > > > > > > > > It seems www/seamonkey2 is broken on CURRENT for at least 1 month > > > > now [1]. Examining build log and reproducing it locally, the > > > > problem is in the usage of libiconv in nsNativeCharsetUtils.cpp. > > > > The linker fails to produce libxpcom_core.so although > > > > -L/usr/local/lib and -liconv are specified [2]. Examining this > > > > further I found that nsNativeCharsetUtils.o produced with [3] > > > > fails to link with libiconv alone too [4] (note still unresolved > > > > libiconv references). I'm not a compiler/linker guru and do not > > > > understand what is happening here. As a workaroud I use the > > > > attached patch which disables the usage of libiconv in > > > > nsNativeCharsetUtils.cpp. > > > > > > Yes, I had this problem also on -current. Does seamonkey build > > > on recent 8.x? > > > > > > libxpcomio_s.a is a static library that has unresolved references > > > to libiconv. I guess I'd expect those references to be resolved > > > with a later -L/usr/local/lib -liconv when building the shared > > > library (libxpcom_core.so), but they are not. > > > > > > > My wild guess: seamonkey tries to hide symbols that are coming from > > different .o file (this time one from libiconv.a) and that fails with > > our toolchain. > > > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20218 > > -- > > Alexander Kabaev > > Follow-up to myself: Nope, the fix to said bug appears in our compiler. > Can you make amd64 version of nsNativeCharsetUtils. > -- > Alexander Kabaev > ??? (It is already on amd64) Well, I have fogotten to put my environment: ~> uname -a FreeBSD lexx.ifp.tuwien.ac.at 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r217884: Wed Jan 26 17:00:37 CET 2011 root_at_lexx.ifp.tuwien.ac.at:/usr/obj/usr/src/sys/GENERIC amd64 And here is the winner: On Sat, Jan 29, 2011 at 08:32:07AM +0300, Anonymous wrote: > Alexey Shuvaev <shuvaev_at_physik.uni-wuerzburg.de> writes: > > > Hello! > > > > It seems www/seamonkey2 is broken on CURRENT for at least 1 month now [1]. > > Examining build log and reproducing it locally, the problem is in the > > usage of libiconv in nsNativeCharsetUtils.cpp. The linker fails to > > produce libxpcom_core.so although -L/usr/local/lib and -liconv > > are specified [2]. Examining this further I found that nsNativeCharsetUtils.o > > produced with [3] fails to link with libiconv alone too [4] (note > > still unresolved libiconv references). > > I'm not a compiler/linker guru and do not understand what is happening > > here. As a workaroud I use the attached patch which disables the usage > > of libiconv in nsNativeCharsetUtils.cpp. > > > [...] > > /usr/bin/ld: aaa: hidden symbol `libiconv_open' isn't defined > > /head per r215840 has working -fvisibility=hidden, i.e. config/gcc_hidden.h. > Try following diff, it should enable patching iconv.h wrapper in bsd.gecko.mk > > _at_${ECHO_CMD} "#pragma GCC system_header" >> ${MOZSRC}/${subdir}/iconv.h > _at_${ECHO_CMD} "#pragma GCC visibility push(default)" >> ${MOZSRC}/${subdir}/iconv.h > _at_${ECHO_CMD} "#include \"${LOCALBASE}/include/iconv.h\"" >> ${MOZSRC}/${subdir}/iconv.h > _at_${ECHO_CMD} "#pragma GCC visibility pop" >> ${MOZSRC}/${subdir}/iconv.h > > %% > Index: www/seamonkey2/Makefile > =================================================================== > RCS file: /a/.cvsup/ports/www/seamonkey2/Makefile,v > retrieving revision 1.315 > diff -u -p -r1.315 Makefile > --- www/seamonkey2/Makefile 10 Dec 2010 13:31:12 -0000 1.315 > +++ www/seamonkey2/Makefile 29 Jan 2011 05:22:11 -0000 > _at__at_ -28,11 +28,10 _at__at_ ALL_TARGET= default > MAKE_JOBS_SAFE= yes > MOZ_PIS_SCRIPTS= moz_pis_S50cleanhome > MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin > -CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include/cairo" > +CONFIGURE_ENV= LOCALBASE=${LOCALBASE} CPPFLAGS="-I${LOCALBASE}/include/cairo" \ > + ac_cv_func__Unwind_Backtrace=no > USE_GCC= 4.2+ > > -CONFIGURE_ENV= LOCALBASE=${LOCALBASE} > - > MOZ_EXTENSIONS= default > MOZ_OPTIONS+= --with-default-mozilla-five-home=${PREFIX}/lib/${MOZILLA} \ > --enable-svg \ > _at__at_ -121,11 +120,6 _at__at_ post-patch: > ${WRKSRC}/mozilla/storage/build/Makefile.in > _at_${REINPLACE_CMD} -e '/accessibility.typeaheadfind.enablesound/s/true/false/' \ > ${WRKSRC}/mozilla/modules/libpref/src/init/all.js > - _at_${REINPLACE_CMD} -e 's|<iconv.h>|\"${LOCALBASE}/include/iconv.h\"|g' \ > - ${WRKSRC}/configure \ > - ${WRKSRC}/mozilla/configure \ > - ${WRKSRC}/mozilla/intl/uconv/native/nsNativeUConvService.cpp \ > - ${WRKSRC}/mozilla/xpcom/io/nsNativeCharsetUtils.cpp > _at_${REINPLACE_CMD} -e 's|libgnome-2.so.0|libgnome-2.so|' \ > ${WRKSRC}/mozilla/toolkit/xre/nsNativeAppSupportUnix.cpp \ > ${WRKSRC}/mozilla/modules/libpr0n/decoders/icon/gtk/nsIconChannel.cpp > %% > This patch did it! I have successfully rebuilt www/seamonkey2 with the above patch applied to port's Makefile (and without my previous workaround). Everything works! As this hidden/visibility symbols are beyond my C/CPP foo, I am leaving the final decision for the experts :) Thanks, Alexey.Received on Sat Jan 29 2011 - 19:20:15 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:11 UTC