On Fri, Jan 28, 2011 at 05:37:51PM -0800, Garrett Cooper wrote:
> On Fri, Jan 28, 2011 at 3:58 PM, Alexey Shuvaev
> <shuv...@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 <kab...@gmail.com> wrote:
> 
> > On Sat, 29 Jan 2011 13:02:24 -0500 (EST)
> > Daniel Eischen <deisc...@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     
r...@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 <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
> 
>       @${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-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