Anonymous <swel...@gmail.com> writes in "[CFT] BSDL iconv in base system":

> I guess gettext hanging is due to ABI incompatibility, too.
>
>   $ cat foo.po
>   msgid ""
>   msgstr ""
>   "Content-Type: text/plain; charset=UTF-8\n"
>   "Content-Transfer-Encoding: 8bit\n"
>
>   msgid "don’t"
>   msgstr "do not"
>
>   $ msgmerge foo.po /dev/null # GNU iconv
>   . done.
>   msgid ""
>   msgstr ""
>   "Content-Type: text/plain; charset=UTF-8\n"
>   "Content-Transfer-Encoding: 8bit\n"
>
>   #~ msgid "don’t"
>   #~ msgstr "do not"
>
>   $ msgmerge foo.po /dev/null # BSD iconv
>   . done.
>   msgid ""
>   load: 0.10  cmd: msgmerge 65132 [runnable] 2.74r 2.72u 0.00s 23% 2844k
>   ^C
>   (gdb) bt
>   #0  _citrus_iconv_none_iconv_convert (ci=0x80f00f190, in=0x7fffffff0b40, 
> inbytes=0x7fffffff0b40, out=0x7fffffff0b48, outbytes=0x7fffffff0b50, flags=0,
>       invalids=0x7fffffff0aa0) at 
> /usr/src/lib/libiconv_modules/iconv_none/citrus_iconv_none.c:119
>           len = 1
>           e2big = 0
>   #1  0x00000008064b9142 in _citrus_iconv_convert (cv=0x80f00f190, 
> in=0x7fffffff0b38, inbytes=0x7fffffff0b40, out=0x7fffffff0b48, 
> outbytes=0x7fffffff0b50,
>       flags=0, nresults=0x7fffffff0aa0) at citrus_iconv.h:60
>   No locals.
>   #2  0x00000008064b90b2 in libiconv (handle=0x80f00f190, in=0x7fffffff0b38, 
> szin=0x7fffffff0b40, out=0x7fffffff0b48, szout=0x7fffffff0b50)
>       at /usr/src/lib/libc/iconv/iconv.c:147
>           ret = 0
>           err = 0
>   #3  0x00000008036db20a in wrap (mp=0x80f020400, stream=0x80f0123c0, 
> line_prefix=0x0, extra_indent=0, css_class=0x80370a2f0 "msgstr",
>       name=0x80370a3a9 "msgstr", value=0x80f01f0b0 "Content-Type: text/plain; 
> charset=UTF-8\nContent-Transfer-Encoding: 8bit\n", do_wrap=undecided,
>       page_width=79, charset=0x7fffffff0d80 "UTF-8") at write-po.c:724
>   #4  0x00000008036dcbdd in message_print (mp=0x80f020400, 
> stream=0x80f0123c0, charset=0x7fffffff0d80 "UTF-8", page_width=79, 
> blank_line=false, debug=false)
>       at write-po.c:1283
>   #5  0x00000008036dd736 in msgdomain_list_print_po (mdlp=0x80f0071c0, 
> stream=0x80f0123c0, page_width=79, debug=false) at write-po.c:1511
>   #6  0x00000008036d8859 in msgdomain_list_print (mdlp=0x80f0071c0, 
> filename=0x80370a0a6 "standard output", output_syntax=0x40d7b0, force=false, 
> debug=false)
>       at write-catalog.c:246
>   #7  0x0000000000403604 in main (argc=3, argv=0x7fffffff0ff0) at 
> msgmerge.c:463

Above test still hangs as of r219023M with similar trace.
Should I file a PR or bsdiconv isn't supposed to work in such a way?

>
> It's a bit tweaked version, though.
>
> %%
> Index: devel/gettext/Makefile
> ===================================================================
> RCS file: /a/.cvsup/ports/devel/gettext/Makefile,v
> retrieving revision 1.87
> diff -u -p -r1.87 Makefile
> --- devel/gettext/Makefile    3 Jun 2010 09:46:38 -0000       1.87
> +++ devel/gettext/Makefile    23 Aug 2010 10:04:26 -0000
> @@ -28,7 +28,7 @@ CONFIGURE_ENV=      ACLOCAL="${TRUE}" \
>               AUTOHEADER="${TRUE}" \
>               MAKEINFO="makeinfo --no-split" \
>               CPPFLAGS="-I${LOCALBASE}/include" \
> -             LDFLAGS="-L${LOCALBASE}/lib" \
> +             LDFLAGS="-L${LOCALBASE}/lib -liconv" \
>               EMACS="no"
>  CONFIGURE_ARGS=      --disable-csharp --disable-threads --disable-openmp \
>               --with-included-gettext --with-included-glib \
> @@ -65,6 +65,8 @@ pre-extract:
>  .endif
>  
>  post-patch:
> +     @${REINPLACE_CMD} 's/-DENABLE_RELOCATABLE=1//' \
> +             ${WRKSRC}/gettext-runtime/intl/Makefile.in
>       @${FIND} ${WRKSRC} -name configure -print | ${XARGS} \
>           ${REINPLACE_CMD} -e 's|mkdir gmkdir|mkdir|'
>  .if defined (NOPORTDOCS)
> %%
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to