sysutils/dbus uses libtool to create convient library doesn't use -static to create the library therefore PIC objects are used for it this means PIC code and non-PIC code is directly linked this means that different access conventions for errno are mixed GNU ld merged the relocation entries, ignoring the semantic difference: TLS_TPOFF: value - tls_offset TLS_TPOFF32: tls_offset - value GCC optimized the address computation of errno to a very innocent looking place in strtol