Add symbols tracking

I added a symbols file and it works for Debian Unstable & Ubuntu 23.10.

When I did a test build for armhf, there was a huge symbols diff. It look like things like unsigned long are being included in the symbols file and this doesn't feel portable to me. For instance.

- (c++)"Glib::ustring::compare(unsigned long, unsigned long, Glib::UStringView) const@Base" 2.76

I think for Ubuntu's goal of tracking whether important symbols/functions go away in new releases, we don't need to track symbols for armhf.

I didn't do a detailed review, but it looks like riscv64 has a more manageable diff, using "lock policy 1" instead of 2 like this:

- (c++)"typeinfo for std::_Mutex_base<(__gnu_cxx::_Lock_policy)2>@Base" 2.76

I am concerned about how much churn there will be for new glib & gtk versions.

Yesterday, I added a symbols file (for all architectures) for pangomm2.48 . I think cairomm1.16 is also similarly doable. cairo doesn't do new stable releases often and I think pango won't be too bad either.

By the way, I used c++filt as suggested on the Debian wiki and I also used sort -u to sort and minimize the symbols (the c++filt output ends up with a few duplicates because of how the process works). c++filt gets rid of the non-human-readable stuff like _ZTSSt19_Sp and I think it's required if we want to understand why symbols disappear.

Merge request reports

Loading