[arch-general] Why are Archlinux packages stripped of (debugging) symbols?
nsajko at gmail.com
Tue Jan 21 20:21:57 UTC 2020
Why is it that makepkg strips symbols by default, and many packagers
even make extra effort to get packages stripped; instead of building
with "-g"? Even Go software, which by Go's design makes use of
debugging symbols at run time had been stripped as far as I remember
(although it seems that has changed, thankfully).
It is quite nice to have debugging symbols in executables for learning
and entertainment purposes (seriously, try Ghidra or radare2 once),
and they are, of course, indispensable when bad luck strikes and one
actually has to debug.
And there do not seem to be any significant downsides to extra
symbols, it just means more permanent storage and bandwidth used.
Especially in view of Arch's existing packaging practice patterns,
like no "-dev" or "-doc" split packages.
I know some developers have some degree of desire for split packages
with stripped symbols in separate files, but that would indeed be
inconsistent with the lack of "-dev" or "-doc" packages. More
importantly, splitting symbols from executable files is most of the
time a harmful complication: it makes packaging more complicated, it
makes using the separated symbols by humans more complicated, and it
makes using the debugging symbols from the program they belong to
harder (ref. Ian Lance Taylor's libbacktrace, which does not work with
symbols in a separate file, very possibly for reasons fundamental to
To conclude: besides arguing for debugging symbols to be installed as
part of executable files, I am honestly asking what are the reasons
for the apparent aversion towards them in Arch's (and wider) culture
(because I am curious about that).
More information about the arch-general