[Interest] ASAN (Qt 6.4 + Glib) build shows stackoverflow in trivial Qt program

Henry Skoglund henry at tungware.se
Sun Nov 13 18:51:54 CET 2022


On 2022-11-13 18:29, Thiago Macieira wrote:
> On Sunday, 13 November 2022 09:03:40 PST Henry Skoglund wrote:
>> I can confirm "several tiny libraries" i.e. I had the same problem when
>> building Qt on Ubuntu 22.04.
>> After fiddling for a while, I took the easy way out:
>> sudo apt-get install libxcb*
>>
>> That installed 68 libs (all beginning with libxcb-) probably overkill
>> but at least it solved the problem :-)
> Those XCB libraries are generated from the X specification, that's why there
> are so many of them. But this split up is counter-productive now.
>
> As you've seen, it causes headache in forgetting just one of them. And as we
> add content to Qt, what built one version may not build the next, so you have
> to review after the upgrade.
>
> The next problem is memory fragmentation. At a bare minimum, each library on
> Linux must be one read-only page containing code and one read-write page
> containing the GOT. Most Linux distros actually split a bit more for security,
> with a read-only non-executable page before the executable one, then one more
> after for read-only constant data and yet another for post-relocation read-
> only, like so:
>
> Address           Kbytes     RSS     PSS   Dirty    Swap Mode  Mapping
> 00007fed1e9e6000       4       4       0       0       0 r--p- libxcb-shm.so.
> 0.0.0
> 00007fed1e9e7000       4       4       0       0       0 r-xp-libxcb-shm.so.
> 0.0.0
> 00007fed1e9e8000       4       4       0       0       0 r--p- libxcb-shm.so.
> 0.0.0
> 00007fed1e9e9000       4       4       4       4       0 r--p- libxcb-shm.so.
> 0.0.0
> 00007fed1e9ea000       4       4       4       4       0 rw-p-libxcb-shm.so.
> 0.0.0
>
> And the last two pages are not sharable between processes, so each one of
> those costs 5 VMA entries in the page tables, 8 kB of non-sharable data, and a
> bit of load-time work processing relocations.
>
> All this for this tiny XCB library:
> -rwxr-xr-x 1 root root 14416 Aug 31 05:33 /lib64/libxcb-shm.so.0.0.0
>
>
> For Clear Linux, we've "tricked" the build to just merge all those libraries
> and libX11.so into a single .so, so they are loaded once only and occupy Much
> less memory.
>
Yeah maybe Ubuntu is not the cream of the crop anymore:
find / -name libxcb-shm.so.0.0.0
/usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
/snap/snap-store/582/usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
/snap/snap-store/599/usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
/snap/gnome-3-38-2004/119/usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0
/snap/gnome-3-38-2004/115/usr/lib/x86_64-linux-gnu/libxcb-shm.so.0.0.0

not only are those libcxb files cluttering up my RAM they're also 
creating litter on my SSD :-(



More information about the Interest mailing list