Re: [imagemagick] Strange bug in one of my packages need help (maybe glibc bug?)
On Wed, May 25, 2011 at 7:34 PM, Roger Leigh <rleigh@codelibre.net> wrote:
> On Wed, May 25, 2011 at 12:20:09PM +0200, Bastien ROUCARIES wrote:
>> Hi,
>>
>> I have two strange bug in my package imagemagick. I am really clueless about these.upstream have no idea also. Any help welcome
>> see #625250
>
> % c++filt _ZNSt14error_categoryD2Ev
> std::error_category::~error_category()
>
> % nm -D /usr/lib/libstdc++.so.6 | grep _ZNSt14error_categoryD2Ev
> 0000003380272800 T _ZNSt14error_categoryD2Ev
>
> % nm -C -D /usr/lib/libstdc++.so.6 | grep error_category
> 0000003380272800 T std::error_category::~error_category()
>
> This is on a sid system.
>
> On squeeze:
> $ nm -D /usr/lib/libstdc++.so.6 | grep _ZNSt14error_categoryD2Ev
> $ echo $?
> 1
>
> If imagemagick was built against the current libstdc++ and run
> using an older libstdc++ without the symbol, you will get this
> error.
>
> I don't see any direct libstdc++ dependency in either the
> imagemagick package, or its library needed sections. What's using
> libdjvulibre? Is it being dlopened.
Yes it is dlopened
> If this is the case,
> libdjvulibre is using an old version of libstdc++, and that's an
> issue with its dependencies (and/or the libstdc++ symbol
> versioning).
Seems so, more strangely using LD_PRELOAD=/usr/lib64/libdjvulibre.so
or LD_BIND_NOW=1 fix this issue. Will reassign to libdvu
Seems related to http://bugs.gentoo.org/show_bug.cgi?id=365209
>
> You'll need a full stack trace to work out what's using this
> library if you haven't done so already.
It does not coredump. How can I get a backtrace ? using LD_DEBUG=all
option point to libdjvu
>> and #622591.
>
> For the latter, rebuild libuuid1 with debugging symbols and get
> a full stack trace. Probably not a bug in libuuid: make sure that
> the caller is passing a valid uuid_t. Here's how I use it:
>
> uuid_t uuid;
> char uuid_str[37];
> uuid_generate(uuid);
> uuid_unparse(uuid, uuid_str);
> uuid_clear(uuid);
>
> Note that uuid_t is not a pointer, it's a char array which decays
> to a pointer:
>
> typedef unsigned char uuid_t[16];
>
> You can use gdb to check what its value is before the call to
> uuid_generate and after the segfault.
Will do thanks
Bastien
>
> Regards,
> Roger
>
> --
> .''`. Roger Leigh
> : :' : Debian GNU/Linux http://people.debian.org/~rleigh/
> `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/
> `- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
>
> iEYEARECAAYFAk3dPaIACgkQVcFcaSW/uEg99ACgjxB/PggjcZs1bnIha/Eo1vlo
> aOIAoKCeM8hOjG3+7z3nggcdIfAI/F7n
> =7ccc
> -----END PGP SIGNATURE-----
>
>
Reply to: