Re: Bug#947045: undefined symbol in libpixbufloader-tiff.so: g_uint_checked_mul
On 20/12/2019 00:49, Simon McVittie wrote:
> (LTS team: full quote of bug report below)
> On Thu, 19 Dec 2019 at 21:41:59 +0000, McIntyre, Vincent (CASS, Marsfield) wrote:
>> Dear LTS Maintainer,
> If a bug is specific to a LTS package, please report it to the
> debian-lts mailing list (I'm sending this mail there to pass the message
> on). https://wiki.debian.org/LTS/FAQ#Where_can_bugs_be_reported.3F
> Ordinary bug reports via bugs.debian.org do not normally go to the
> LTS team.
reportbug was patched to copy -lts and -security bugs to the appropriate
addresses. However it looks like that didn't work this time.
>> I noticed this and thought I should report it.
>> The following packages will be upgraded:
>> libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-common
>> 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
>> Need to get 463 kB of archives.
>> After this operation, 2,048 B disk space will be freed.
>> Do you want to continue? [Y/n]
>> Get:1 http://<internalapprox>:9999/security/ jessie/updates/main libgdk-pixbuf2.0-0 amd64 2.31.1-2+deb8u8 [168 kB]
>> Get:2 http://<internalapprox>:9999/security/ jessie/updates/main libgdk-pixbuf2.0-common all 2.31.1-2+deb8u8 [295 kB]
>> Fetched 463 kB in 0s (3,072 kB/s)
>> Reading changelogs... Done
>> (Reading database ... 56214 files and directories currently installed.)
>> Preparing to unpack .../libgdk-pixbuf2.0-0_2.31.1-2+deb8u8_amd64.deb ...
>> Unpacking libgdk-pixbuf2.0-0:amd64 (2.31.1-2+deb8u8) over (2.31.1-2+deb8u7) ...
>> Preparing to unpack .../libgdk-pixbuf2.0-common_2.31.1-2+deb8u8_all.deb ...
>> Unpacking libgdk-pixbuf2.0-common (2.31.1-2+deb8u8) over (2.31.1-2+deb8u7) ...
>> Setting up libgdk-pixbuf2.0-common (2.31.1-2+deb8u8) ...
>> Setting up libgdk-pixbuf2.0-0:amd64 (2.31.1-2+deb8u8) ...
>> g_module_open() failed for /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.so: /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.so: undefined symbol: g_uint_checked_mul
> This looks like an incorrect backport: g_uint_checked_mul() was new in
> GLib 2.48, but Debian 8 only had GLib 2.42, so that won't work.
> The code path used for g_uint_checked_mul() on gcc >= 5 is implemented
> in terms of the __builtin_umul_overflow() compiler builtin, so a backport
> of these gdk-pixbuf patches could probably use __builtin_umul_overflow()
> directly, or wrap a macro around it to provide a simplified, gcc-specific
> version of g_uint_checked_mul().
Note that jessie has GCC 4.9, so this probably needs to use the explicit version:
static inline gboolean _GLIB_CHECKED_MUL_U32 (guint32 *dest, guint32 a, guint32
*dest = a * b; return !a || *dest / a == b; }
#define g_uint_checked_mul(dest, a, b) \
_GLIB_CHECKED_MUL_U32(dest, a, b)