Subject: bug#21285: configure: <uniconv.h> not found despite --with-libunistring-prefix

From: Mark H Weaver <[email-masked]>
Date: Sat, 22 Aug 2015 10:22:06 -0400

Marcin Cieslak <[email-masked]> writes:

> I cannot configure guile on an oldish Solaris SPARC machine
> when giving  --with-libunistring-prefix to the unistring location:
[...]
> I think this is because the -I flag is missing.

[...]

> --- BEGIN fragments of config.log --- full file follows ---
>
> This file contains any messages produced by compilers while
> running configure, to aid debugging if configure makes a mistake.
>
> It was created by GNU Guile configure 2.0.11, which was
> generated by GNU Autoconf 2.69.  Invocation command line was
>
>   $ ../../src/guile-2.0.11/configure --build=sparc-sun-solaris.2.9 --host=sparc64-sun-solaris.2.9 --target=sparc64-sun-solaris.2.9 --prefix=/home/admini/saper/sparcv9 --with-libgmp-prefix=/home/admini/saper/sparcv9 --with-libintl-prefix=/home/admini/saper/sparcv9 --with-libreadline-prefix=/home/admini/saper/sparcv9 --with-libunistring-prefix=/home/admini/saper/sparcv9 --with-libltdl-prefix=/home/admini/saper/sparcv9 CC=/home/admini/saper/sparcv7/bin/gcc -m64 -mcpu=ultrasparc3 CC_FOR_BUILD=/home/admini/saper/sparcv7/bin/gcc -m64 -mcpu=ultrasparc3 BDW_GC_CFLAGS=-I/home/admini/saper/sparcv9/include BDW_GC_LIBS=-L/home/admini/saper/sparcv9/lib -lgc LIBFFI_CFLAGS=-I/home/admini/saper/sparcv9/include LIBFFI_LIBS=-L/home/admini/saper/sparcv9/lib -lffi AR=/usr/ccs/bin/ar LD=/usr/ccs/bin/ld NM=/usr
>  /ccs/bin/nm STRIP=/usr/ccs/bin/strip

You may find that much of this complexity in the 'configure' command
could be eliminated by taking the following steps:

* export CPATH=/home/admini/saper/sparcv9/include
* export LIBRARY_PATH=/home/admini/saper/sparcv9/lib
* export PKG_CONFIG_PATH=/home/admini/saper/sparcv9/lib/pkgconfig
* install 'pkg-config' and make sure it's in PATH

That should allow you to simplify the command to this, if not further:

../../src/guile-2.0.11/configure --build=sparc-sun-solaris.2.9 --host=sparc64-sun-solaris.2.9 --target=sparc64-sun-solaris.2.9 --prefix=/home/admini/saper/sparcv9 CC="/home/admini/saper/sparcv7/bin/gcc -m64 -mcpu=ultrasparc3" CC_FOR_BUILD="/home/admini/saper/sparcv7/bin/gcc -m64 -mcpu=ultrasparc3" AR=/usr/ccs/bin/ar LD=/usr/ccs/bin/ld NM=/usr/ccs/bin/nm STRIP=/usr/ccs/bin/strip

It should also work around the problem you're having.

There may be additional difficulties related to the fact that you appear
to be cross-compiling.  Did you read the section "Cross building Guile"
in our README?

> /* snip */
>
> configure:14672: checking for libunistring

This doesn't appear to be the same 'configure' script that we distribute
with guile-2.0.11.  The line numbers are different.  Did you regenerate
it?

> configure:14694: /home/admini/saper/sparcv7/bin/gcc -m64 -mcpu=ultrasparc3 -o conftest -g -O2   conftest.c  -lunistring >&5
> conftest.c:123:21: fatal error: uniconv.h: No such file or directory
>  #include <uniconv.h>
>                      ^
> compilation terminated.

I agree that this is likely a problem in the m4 code, which we import
from gnulib, but for now, can you see if the above suggestions work for
you and report back?

     Thanks,
       Mark