[Development] libQt6Core.so links against both libpcre.so.3 and libpcre2-16.so.0

Shawn Rutledge Shawn.Rutledge at qt.io
Wed Mar 8 11:42:16 CET 2023


> On 8 Mar 2023, at 11:16, Marc Mutz via Development <development at qt-project.org> wrote:
> 
> Hi,
> 
> Did my first conscious ldd on QtCore todays and just found it curious 
> that it linked against pcre and pcre2-16.
> 
> Digging, I found that the pcre dep gets dragged in by glib-2.0:
> 
>   objdump -p /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 | grep NEEDED
>     NEEDED               libpcre.so.3
>     NEEDED               libpthread.so.0
>     NEEDED               libc.so.6

Arch Linux package FWIW:

$ lddtree /usr/lib/libQt6Core.so.6.4.2
/usr/lib/libQt6Core.so.6.4.2 (interpreter => None)
    libicui18n.so.72 => /usr/lib/libicui18n.so.72
    libicuuc.so.72 => /usr/lib/libicuuc.so.72
        libicudata.so.72 => /usr/lib/libicudata.so.72
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
        libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0
    libz.so.1 => /usr/lib/libz.so.1
    libsystemd.so.0 => /usr/lib/libsystemd.so.0
        libcap.so.2 => /usr/lib/libcap.so.2
        libgcrypt.so.20 => /usr/lib/libgcrypt.so.20
            libgpg-error.so.0 => /usr/lib/libgpg-error.so.0
        liblzma.so.5 => /usr/lib/liblzma.so.5
        liblz4.so.1 => /usr/lib/liblz4.so.1
    libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3
    libb2.so.1 => /usr/lib/libb2.so.1
        libgomp.so.1 => /usr/lib/libgomp.so.1
    libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0
    libzstd.so.1 => /usr/lib/libzstd.so.1
    libstdc++.so.6 => /usr/lib/libstdc++.so.6
    libm.so.6 => /usr/lib/libm.so.6
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
    libc.so.6 => /usr/lib/libc.so.6
    ld-linux-x86-64.so.2 => /usr/lib/ld-linux-x86-64.so.2

6.5 beta from the installer:

$ lddtree /zhome/rutledge/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0
/zhome/rutledge/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0 (interpreter => /lib64/ld-linux-x86-64.so.2)
    libicui18n.so.56 => /zhome/rutledge/Qt/6.5.0/gcc_64/lib/libicui18n.so.56
    libicuuc.so.56 => /zhome/rutledge/Qt/6.5.0/gcc_64/lib/libicuuc.so.56
    libicudata.so.56 => /zhome/rutledge/Qt/6.5.0/gcc_64/lib/libicudata.so.56
    libdl.so.2 => /usr/lib/libdl.so.2
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
        libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0
    libz.so.1 => /usr/lib/libz.so.1
    libpthread.so.0 => /usr/lib/libpthread.so.0
    libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0
    librt.so.1 => /usr/lib/librt.so.1
    libstdc++.so.6 => /usr/lib/libstdc++.so.6
    libm.so.6 => /usr/lib/libm.so.6
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
    libc.so.6 => /usr/lib/libc.so.6
    ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2

My developer build:

$ lddtree /zhome/rutledge/dev/qt6-dbg/qtbase/lib/libQt6Core.so.6.2.0
/zhome/rutledge/dev/qt6-dbg/qtbase/lib/libQt6Core.so.6.2.0 (interpreter => /lib64/ld-linux-x86-64.so.2)
    libicui18n.so.69 => None
    libicuuc.so.69 => None
    libicudata.so.69 => None
    libzstd.so.1 => /usr/lib/libzstd.so.1
    libdl.so.2 => /usr/lib/libdl.so.2
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
        libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0
    libz.so.1 => /usr/lib/libz.so.1
    libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3
    libb2.so.1 => /usr/lib/libb2.so.1
        libgomp.so.1 => /usr/lib/libgomp.so.1
    libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0
    libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0
    librt.so.1 => /usr/lib/librt.so.1
    libstdc++.so.6 => /usr/lib/libstdc++.so.6
    libm.so.6 => /usr/lib/libm.so.6
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
    libpthread.so.0 => /usr/lib/libpthread.so.0
    libc.so.6 => /usr/lib/libc.so.6
    ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2



More information about the Development mailing list