OK. Using dh_strip instead of dh_strip_nondeterminism (default) ...
root@iniza:/usr/bin# ll dh_strip* -rwxr-xr-x 1 root root 15K 23. Aug 10:06 dh_strip -rwxr-xr-x 1 root root 15K 23. Aug 10:06 dh_strip.debian lrwxrwxrwx 1 root root 8 1. Nov 11:04 dh_strip_nondeterminism -> dh_strip -rwxr-xr-x 1 root root 3,2K 24. Mai 09:55 dh_strip_nondeterminism.debian ... let me build with DWARF-5. The file-sizes of DEBUG packages are a bit bigger: $ du -k LATEST.MR12*/*dbgsym*.deb | sort -n 3376 LATEST.MR12/quassel-core-dbgsym_0.14.0-4~dileks_amd64.deb 3620 LATEST.MR12.dwarf5-strip-dh_strip/quassel-core-dbgsym_0.14.0-6~dileks_amd64.deb 5100 LATEST.MR12/quassel-client-dbgsym_0.14.0-4~dileks_amd64.deb 5516 LATEST.MR12.dwarf5-strip-dh_strip/quassel-client-dbgsym_0.14.0-6~dileks_amd64.deb 7184 LATEST.MR12/quassel-dbgsym_0.14.0-4~dileks_amd64.deb 7788 LATEST.MR12.dwarf5-strip-dh_strip/quassel-dbgsym_0.14.0-6~dileks_amd64.deb Binary packages: $ du -k LATEST.MR12*/quassel_*.deb | sort -n 1688 LATEST.MR12.dwarf5-strip-dh_strip/quassel_0.14.0-6~dileks_amd64.deb 1692 LATEST.MR12/quassel_0.14.0-4~dileks_amd64.deb 6816 LATEST.MR12.dwarf5-nostrip/quassel_0.14.0-5~dileks_amd64.deb -Sedat- On Fri, Nov 1, 2024 at 10:54 AM Sedat Dilek <sedat.di...@gmail.com> wrote: > > Hi, > > today is a public holiday in Germany and I have time to play. > > [ INTRO - Let me introduce myself ] > > By heart and with love - I build my Linux-kernel with LLVM/Clang and > LLVM tools (LLVM "binutils"). > > 10+ years ago I provided quassel-nightly Debian packages for AMD64 for > interested people. > Quassel is an IRC-client based on QT-v5 and written in C++ and most > people using KDE/desktop love it. > > [ MR12 ] > > By accident I fell over Merge-Request "MR12" in Debian's salsa GITLAB > quassel repository. > "RFC: Build with LLVM 16 and CFI enabled" > > Link: > https://salsa.debian.org/qt-kde-team/extras/quassel/-/merge_requests/12/diffs?commit_id=b97aeec74b443679c958798ab55e21ea0dbe23fe > > [ THE EXPERIMENT ] > > After the transition to QT version 5.15.15 finished I was thinking of > testing the MR12 patch. > > Link: https://release.debian.org/transitions/html/qtbase-abi-5-15-15.html > > [ TRYOUT-1 - Simple Rebuild ] > > First, I did a simple rebuild with NO changes (uses GCC toolchain + > GNU/binutils). > > [ TRYOUT-2 - MR12 and LLVM-19 ] > > Second, I applied MR12 and built successfully with Debian's LLVM/Clang > v19.1.2 (v19.1.3 is on the way). > > [ NUMBERS ] > > "Numbers talk, bullshit walks." (Linus Torvalds) > > $ du -m LATEST*/*dbgsym*.deb | sort -n > 4 LATEST.MR12/quassel-core-dbgsym_0.14.0-4~dileks_amd64.deb > 5 LATEST.MR12/quassel-client-dbgsym_0.14.0-4~dileks_amd64.deb > 8 LATEST.MR12/quassel-dbgsym_0.14.0-4~dileks_amd64.deb > 16 LATEST/quassel-core-dbgsym_0.14.0-3~dileks_amd64.deb > 33 LATEST/quassel-client-dbgsym_0.14.0-3~dileks_amd64.deb > 42 LATEST/quassel-dbgsym_0.14.0-3~dileks_amd64.deb > > $ du -k LATEST*/quassel_*amd64.deb | sort -n > 1692 LATEST.MR12/quassel_0.14.0-4~dileks_amd64.deb > 1868 LATEST/quassel_0.14.0-3~dileks_amd64.deb > 6816 LATEST.MR12.dwarf5-nostrip/quassel_0.14.0-5~dileks_amd64.deb > > WOW, great numbers! > > [ DWARF VERSION 5 ] > > Oh, I forgot I am a DWARF-v5 lover (@Nick How it is going with the baby :-))! > > From Christian's MR12 patch: > > [ debian/rules ] > > export CC=clang > export CXX=clang++ > export RANLIB=llvm-ranlib > export AR=llvm-ar > export DEB_CFLAGS_MAINT_APPEND=-gdwarf-4 -flto -fvisibility=hidden > -fsanitize=cfi > export DEB_CXXFLAGS_MAINT_APPEND=-gdwarf-4 -flto -fvisibility=hidden > -fsanitize=cfi > export DEB_LDFLAGS_MAINT_APPEND=-flto -fvisibility=hidden -fsanitize=cfi > > ^^ Uses DWARF-v4 + Clang-LTO + Clang-CFI > > [ TRYOUT-3 - DWARFv5 + nostrip ] > > INFO: Substitute -gdwarf-4 with -gdwarf-5 > > $ LC_ALL=C DEB_BUILD_OPTIONS=nostrip debuild > > ^^ Work(s) Around - NOSTRIP > > [ TRYOUT-4 - DWARFv5 + strip ] > > $ LC_ALL=C DEB_BUILD_OPTIONS=strip debuild > ... > make[1]: Leaving directory '/home/dileks/src/quassel/quassel-0.14.0' > dh_installlogrotate > dh_icons > dh_perl > dh_link > dh_strip_nondeterminism > dh_compress > dh_fixperms > dh_missing > dh_dwz -a > dwz: debian/quassel-client/usr/bin/quasselclient: Unknown debugging > section .debug_addr > dwz: debian/quassel-core/usr/bin/quasselcore: Unknown debugging > section .debug_addr > dwz: debian/quassel/usr/bin/quassel: Unknown debugging section .debug_addr > dh_dwz: error: dwz -- debian/quassel/usr/bin/quassel returned exit code 1 > dh_dwz: error: dwz -- debian/quassel-core/usr/bin/quasselcore returned > exit code 1 > dh_dwz: error: dwz -- debian/quassel-client/usr/bin/quasselclient > returned exit code 1 > dh_dwz: error: Aborting due to earlier error > make: *** [debian/rules:23: binary] Error 25 > dpkg-buildpackage: error: fakeroot debian/rules binary subprocess > returned exit status 2 > debuild: fatal error at line 1184: > dpkg-buildpackage -us -uc -ui failed > > ^^ DWZ ERRORS > > Unsure how to solve this. > > [ TRYOUT-5 - DWZ + dwarf-5 ] > > dwz lists this option: > > -5, --dwarf-5 Emit DWARF 5 standardized supplementary object > files instead of GNU extension .debug_altlink. > > I tried a dwz-wrapper: > > # cd /usr/bin/ > # mv dwz dwz.bin > # ln -sf mydwz dwz > > [ mydwz ] > #!/bin/bash > > dwz.bin --dwarf-5 "$@" > -EOF- > > ^^ NO SUCCESS - the dwz-wrapper is used! > ... > dh_dwz -a > dwz.bin: debian/quassel/usr/bin/quassel: Unknown debugging section .debug_addr > dwz.bin: debian/quassel-client/usr/bin/quasselclient: Unknown > debugging section .debug_addr > dh_dwz: error: dwz -- debian/quassel/usr/bin/quassel returned exit code 1 > dh_dwz: error: dwz -- debian/quassel-client/usr/bin/quasselclient > returned exit code 1 > dwz.bin: debian/quassel-core/usr/bin/quasselcore: Unknown debugging > section .debug_addr > dh_dwz: error: dwz -- debian/quassel-core/usr/bin/quasselcore returned > exit code 1 > dh_dwz: error: Aborting due to earlier error > > My Debian system is based on unstable AMD64. > > CC LLVM Linux-kernel folks + some Debian folks LLVM, dwz, debhelper, > quassel, QT/KDE and Christian. > > Any help appreciated. > > Best thanks. > > Best regards, > -Sedat- > > P.S.: I want to use the FULL LLVM ECO system to build quassel/unstable > AMD64 on Debian. > Link: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Makefile#n473