[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: providing a libidn compatibility API
From: |
Tim Ruehsen |
Subject: |
Re: providing a libidn compatibility API |
Date: |
Tue, 14 Feb 2017 10:07:43 +0100 |
User-agent: |
KMail/5.2.3 (Linux/4.9.0-1-amd64; KDE/5.28.0; x86_64; ; ) |
On Tuesday, February 14, 2017 8:00:26 AM CET Nikos Mavrogiannopoulos wrote:
> On Mon, Feb 13, 2017 at 7:57 AM, Nikos Mavrogiannopoulos
>
> <address@hidden> wrote:
> >> It turned out that if libunistring is linked, this extra code is still
> >> added to libidn2, just blowing up the size without any advantage. Simon
> >> and I didn't have (fast) solution to that, so we commented the extra
> >> gnulib modules in bootstrap.conf.
> >
> > Interesting, that would affect gnutls as well since it is also using
> > libunistring that way.
>
> Actually it doesn't. I had made a separate library with unistring
> which was only being included if libunistring was not available. I
> attempted to do something similar for libidn2 at:
> https://gitlab.com/jas/libidn2/merge_requests
>
> Note however that in libidn2 you had two states. Have libunistring
> available with uc_joining_type imported from a local copy from
> unistring (latest), and have libunistring containing everything. For
> the simplicity of the fix above, I've switched to have a sufficiently
> new libunistring, vs have no libunistring. That means of course that
> the newer (and bigger) libunistring will enter on systems without
> 0.9.6.
Libidn2 is built with libtool which uses the linker flag --whole-archive for
libgnu.a:
libtool: link: gcc -shared -fPIC -DPIC .libs/idna.o .libs/decode.o .libs/
lookup.o .libs/register.o .libs/bidi.o .libs/version.o .libs/error.o .libs/
punycode.o .libs/free.o .libs/data.o .libs/tr46map.o .libs/tables.o .libs/
context.o -Wl,--whole-archive lib/.libs/libgnu.a -Wl,--no-whole-archive -
lunistring -g -Wl,--version-script=./idn2.map -Wl,-soname -Wl,libidn2.so.0
-o .libs/libidn2.so.0.1.5
This adds everything from libgnu.a to libidn2.so.0.1.5, if needed or not.
The issue is gone when removing --whole-archive. Everything links fine and the
tests work. But I have no clue how to tell libtool that it should not use --
whole-archive. Any idea ?
The issue could be solved either in gnulib (not adding unneeded stuff to
libgnu.a) or libtool (not using --whole-archive).
Regards, Tim
signature.asc
Description: This is a digitally signed message part.
- Re: providing a libidn compatibility API, Tim Rühsen, 2017/02/07
- Re: providing a libidn compatibility API, Nikos Mavrogiannopoulos, 2017/02/10
- Re: providing a libidn compatibility API, Tim Rühsen, 2017/02/10
- Re: providing a libidn compatibility API, Nikos Mavrogiannopoulos, 2017/02/10
- Re: providing a libidn compatibility API, Tim Rühsen, 2017/02/10
- Re: providing a libidn compatibility API, Nikos Mavrogiannopoulos, 2017/02/13
- Re: providing a libidn compatibility API, Nikos Mavrogiannopoulos, 2017/02/14
- Re: providing a libidn compatibility API,
Tim Ruehsen <=
- Re: providing a libidn compatibility API, Nikos Mavrogiannopoulos, 2017/02/14
- Re: providing a libidn compatibility API, Simon Josefsson, 2017/02/19