Package: dpkg-dev
Version: 1.20.9
Severity: normal
GNU ld generates a nullptr absolute symbol for each version script tag.
test.sym:
LIBTEST_1
{
};
clang -shared /dev/null -o example.so -Wl,--version-script=test.sym -fuse-ld=ld
llvm-nm -D example.so:
0000000000000000 A LIBTEST_1@@LIBTEST_1
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
w __cxa_finalize
w __gmon_start__
LLVM's LLD (i.e. -fuse-ld=lld) does not.
Many existing packages' symbols files however expect such symbols (e.g.
systemd).
This makes building them cleanly with LLD not possible.
Rather than considering this a bug in LLD I think it would be more reasonable to
fix this in dpkg because they're simply noise.
1. They are nullpointers and thus don't have any actual underlying
implementation.
2. If they disappear, the whole section will have been deleted, so certainly
other
symbols will have also gone missing.
I tried reading the binutils code for half an hour to understand where in the
code
and why they're being generated, but had no luck.
Maintainers, does this seem reasonable?
I would be willing to contribute a patch.
-- Package-specific info:
System tainted due to merged-usr-via-aliased-dirs.
-- System Information:
Debian Release: 11.0
APT prefers experimental
APT policy: (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: arm64
Kernel: Linux 5.10.0-8-amd64 (SMP w/32 CPU threads)
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8),
LANGUAGE=en_IE:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages dpkg-dev depends on:
ii binutils 2.37-4
ii bzip2 1.0.8-4
ii libdpkg-perl 1.20.9
ii make 4.3-4.1
ii patch 2.7.6-7
ii perl 5.32.1-5
ii tar 1.34+dfsg-1
ii xz-utils 5.2.5-2
Versions of packages dpkg-dev recommends:
ii build-essential 12.9
ii build-essential-clang [build-essential 1:14.0.0+git20210821.d546c9aa1fc9-1
ii clang [c-compiler] 1:14.0.0+git20210821.d546c9aa1fc9-1
ii fakeroot 1.25.3-1.1
ii gcc [c-compiler] 4:10.2.1-1
ii gcc-10 [c-compiler] 10.2.1-6
ii gnupg 2.2.27-2
ii gpgv 2.2.27-2
ii libalgorithm-merge-perl 0.08-3
Versions of packages dpkg-dev suggests:
pn debian-keyring <none>
-- no debconf information