Hi,
On 2011-09-29 13:03:48 +0200, Peter Kruse wrote:
> Hello,
>
> The recently[1] added function `func_replace_sysroot' adds an '=' to a
> given path.
> But this path is then added to $dependency_libs in the .la file like this:
>
> dependency_libs=' -L=/usr/lib'
>
> resulting in errors like:
>
> libtool: link: warning: cannot determine absolute directory name of
> `=/usr/lib'
>
> what is the reasoning for this equal sign? I have configured some
> recent versions
> of some software packages that use this libtool (pcre, glib) with
> --with-sysroot and my PATH indeed starts with that directory.
Some user ran into the same problem with MPFR, but it doesn't seem to
be a bug, so that I think this bug should be closed. You need a more
recent Libtool (2.4+) to link.
The Libtool 2.4+ NEWS file says:
New in 2.4 2010-09-22: git version 2.2.11a, Libtool team:
* New features:
- Sysroot support. This allows you to build cross-compiled packages
with the same prefix that will be used on the destination machine,
and still find dependent libraries under the compiler's "sysroot".
Without sysroot support, paths internal to the build system may leak
into the product of the build.
Sysroot support is disabled unless the --with-sysroot configure
option is passed to configure, because .la files generated with
sysroot support will _not_ be usable in general with older Libtools.
On 2011-09-29 13:03:48 +0200, Peter Kruse wrote:
> Hello,
>
> The recently[1] added function `func_replace_sysroot' adds an '=' to a
> given path.
> But this path is then added to $dependency_libs in the .la file like this:
>
> dependency_libs=' -L=/usr/lib'
>
> resulting in errors like:
>
> libtool: link: warning: cannot determine absolute directory name of
> `=/usr/lib'
>
> what is the reasoning for this equal sign? I have configured some
> recent versions
> of some software packages that use this libtool (pcre, glib) with
> --with-sysroot and my PATH indeed starts with that directory.
Some user ran into the same problem with MPFR, but it doesn't seem to
be a bug, so that I think this bug should be closed. You need a more
recent Libtool (2.4+) to link.
The Libtool 2.4+ NEWS file says:
New in 2.4 2010-09-22: git version 2.2.11a, Libtool team:
* New features:
- Sysroot support. This allows you to build cross-compiled packages
with the same prefix that will be used on the destination machine,
and still find dependent libraries under the compiler's "sysroot".
Without sysroot support, paths internal to the build system may leak
into the product of the build.
Sysroot support is disabled unless the --with-sysroot configure
option is passed to configure, because .la files generated with
sysroot support will _not_ be usable in general with older Libtools.
There is technical information here:
遇到这个问题上网搜索了一下,是libtool的版本问题,后来查看一下libXext-1.2.0中自带的libtool里真是2.2.0版本的,而我编译libxcb时使用的libtool版本为2.4.2,果然删除掉旧的,从/usr/bin/libtool复制一个过来。
linker: /usr/x86_64-suse-linux/bin/ld -m elf_x86_64 (gnu? yes)
libtool: (GNU libtool) 2.4.2
automake: automake (GNU automake) 1.13.4
autoconf: autoconf (GNU Autoconf) 2.69