Your message dated Sat, 17 Sep 2022 09:01:23 +0200
with message-id <yyvwwz5xn4+vb...@thunder.hadrons.org>
and subject line Re: Bug#992796: dpkg-gensymbols should ignore version script
tag symbols
has caused the Debian Bug report #992796,
regarding dpkg-gensymbols should ignore version script tag symbols
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
992796: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992796
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
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
--- End Message ---
--- Begin Message ---
Hi!
On Sat, 2021-10-30 at 17:36:54 +0300, Raul Tambre wrote:
> On 2021-09-10 06:10, Guillem Jover wrote:
> > Before even considering applying something like this, the above would
> > need to be clarified with GNU binutils maintainers. And either that
> > deemed redundant (which I doubt) and to stop emitting them, or for LLD
> > to start emitting them for compatibility with GNU ld and gold.
>
> I've now discussed this on the binutils mailing list
> (<https://sourceware.org/pipermail/binutils/2021-October/thread.html#118179>).
> It was guessed that this could likely be used for distinguishing whether a
> library supports version XYZ symbols without knowing specific symbols from
> that version.
>
> Thereafter I corresponded further with Fangrui and he declined adding
> support for this feature to LLD due to the intent of the feature being
> unclear. He also seemed hesitant in earlier emails as no real-world uses
> have been found despite multiple notable distributions using LLD.
> I have, with his permission, attached our full email thread.
>
> binutils maintainers since also declined to deprecate/remove this feature
> (<https://sourceware.org/pipermail/binutils/2021-October/thread.html#118179>).
>
> Due to the absence of an upstream solution I see two possible paths forward:
> 1. A patch for dpkg to ignore these
> (<https://lists.debian.org/debian-dpkg/2021/08/msg00003.html>).
> 2. A patch for LLD to match binutils's behaviour.
>
> Please let me know what you think of these options.
Hmm, this situation is annoying, but I think as long as binutils does
not deprecate/remove this, I'm going to be reluctant to do the same in
dpkg. :/ My preference is still to get LLD to match binutils behavior
TBH.
With that, I think I'm going to be closing this report, but I'm happy
to reconsider (and feel free to reopen) if the situation in upstream
toolchains changes.
Thanks,
Guillem
--- End Message ---