MR: https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/merge_requests/1
An issue: https://gitlab.archlinux.org/pacman/pacman/-/issues/91
To find your already installed debug packages:
pacman -Q | grep -e '-debug '
This debug packages usually huge, I noticed this accidentally, and I haven’t found a news about this on archlinux.org
To solve this add a !
before debug
on line 97 in /etc/makepkg.conf
But strip is still enabled on new makepkg.conf, so all debug symbols get removed when packaging. Actually I don’t get it why stripping debug symbols while also generating them first. So are those two actually compatible?
I don’t know, in the old version
strip
was enbled and it worked, check the commit in the MRHow to stop their generation?
strip has need enabled since I can remember, so yes it was enabled. The change was from this:
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto)
To this:
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge debug lto)
Actually enabling debug and lto, but keeping strip. So unless I’m missing something, what it adds on one side, it removes it on the other, :)
You can confirmed with the specif change on the referenced MR.
So lto should be disabled as well if I disable debug? Lto sounds like something useful, but actually I don’t know what it means exactly. Or what do you recommend, I don’t understand.
LTO is a different thing, and I’m not sure why it was enabled by default until now (well, It’s said it doesn’t play nice with clang), see this RFC from 2 years back. Also notice what current makepkg uses is
LTOFLAGS="-flto=auto"
. The idea according to the RFC, is that for packages failing to use the default,options=('!lto')
can be added to the PKGBUILD.So that should be safe, and iif you’re wondering, it stands for Link Time Optimization. On AUR, I guess users adding new packages or maintaining packages, should be aware, and add that option if they find out LTO by default is giving issues.
I guess the current defaults are sane. All I said the original post, is that the strip option, which is still enabled by default gets rid of the debug symbols. So yes, now they are getting generated by default, but also stripped off by default. And that’s what I don’t understand. Perhaps that’s a good topic for the
arch-general
mailing list, hoping some developer is around to clarify things. Perhaps the current makepkg.conf is an intermediate one, and there will come another one using !strip instead. Or maybe currently strip doesn’t get rid of all debug symbols generated by debug. But the current documentation on makepkg.conf is not clear enough…So I would leave the current defaults if it’s not clear yet if changing them is something that would help you out. As mentioned, with strip you shouldn’t get that huge packages. But also it’d be good to make sure, asking on a Arch forum involving devs…
@[email protected], I think I got now why by default the keep
strip
anddebug
together.strip
seems to be removing them only from the non-debug
package generated, and not doing so on the-debug
package generated. So they actually make sense together.That said, you were right. If not interested on the
-debug
packages getting generated, just use!debug
.Greetings !
Thanks a lot!