On Sat, 29 Jan 2011, Alexey Shuvaev wrote:

And here is the winner:

On Sat, Jan 29, 2011 at 08:32:07AM +0300, Anonymous wrote:
Alexey Shuvaev <shuv...@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


Is someone going to commit this?



        @${ECHO_CMD} "#pragma GCC system_header" >> ${MOZSRC}/${subdir}/iconv.h
        @${ECHO_CMD} "#pragma GCC visibility push(default)" >> 
${MOZSRC}/${subdir}/iconv.h
        @${ECHO_CMD} "#include \"${LOCALBASE}/include/iconv.h\"" >> 
${MOZSRC}/${subdir}/iconv.h
        @${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
@@ -28,11 +28,10 @@ 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 \
@@ -121,11 +120,6 @@ post-patch:
                ${WRKSRC}/mozilla/storage/build/Makefile.in
        @${REINPLACE_CMD} -e 
'/accessibility.typeaheadfind.enablesound/s/true/false/' \
                ${WRKSRC}/mozilla/modules/libpref/src/init/all.js
-       @${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
        @${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.
_______________________________________________
freebsd-curr...@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

--
DE
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to