[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: build errors: 9172 Broken pipe and 9173 Segmentation fault

From: Mark H Weaver
Subject: Re: build errors: 9172 Broken pipe and 9173 Segmentation fault
Date: Mon, 18 Apr 2011 19:45:03 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

address@hidden (Ludovic Courtès) writes:
>> Douglas and I did some investigation over this over IRC, and discovered
>> that this problem is not within Guile.  On his platform (uClibc on
>> PowerPC, using GCC 4.6.0 and libunistring-0.9.3) u32_conv_from_encoding
>> does not work correctly, as demonstrated by the attached minimal C
>> program, which is not linked with Guile.
> Great.  Did you report it on bug-libunistring?

Further investigation revealed that his libunistring was built with
HAVE_ICONV undefined.  Apparently it is possible to build and install
libunistring without iconv, in which case most (all?) attempts to
convert between encodings will fail.

Therefore, it seems that there is no bug here at all.  After Douglas
rebuilt libunistring, his guile-2.0 build proceeded further than ever
before: into byte-compiling *.scm files at least, and possibly all the
way to completion, I'm not sure.

Ideally, guile's configure script should check that libunistring is able
to convert between encodings, instead of failing with an obscure error
far into the build.

I've never worked with autoconf, so I'm uncertain of how best to add
this check.  If you'd like to add it, the attached C program would be a
suitable test program.  It will return a non-zero exit status if
libunistring conversion fails, which most likely indicates that
libunistring was built without iconv.  In this case I think the build
should be aborted.


#include <uniconv.h>
#include <unistring/iconveh.h>

main (int argc, char *argv[])
  size_t result_size;
  return (NULL == u32_conv_from_encoding ("ASCII", iconveh_question_mark,
                                          "a", 1,
                                          NULL, NULL, &result_size));

reply via email to

[Prev in Thread] Current Thread [Next in Thread]