Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.kernel > #88297
| From | наб <nabijaczleweli@nabijaczleweli.xyz> |
|---|---|
| Newsgroups | linux.debian.bugs.dist, linux.debian.kernel |
| Subject | Bug#1108037: linux-perf: perf report --demangle only works on some(?) symbols |
| Date | 2025-07-09 19:20 +0200 |
| Message-ID | <L6GCB-gptb-11@gated-at.bofh.it> (permalink) |
| References | <KZohr-bGau-3@gated-at.bofh.it> <L6FGx-goMl-1@gated-at.bofh.it> <KZohr-bGau-3@gated-at.bofh.it> <L6FGx-goMl-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Cross-posted to 2 groups.
[Multipart message — attachments visible in raw view] - view raw
Control: tag -1 - moreinfo
On Wed, Jul 09, 2025 at 06:15:10PM +0200, Ben Hutchings wrote:
> What does the actual declaration of this function look like, and what
> toolchain are you using to compile it?
I get this out of src:botan3 3.7.1+dfsg-2 src/lib/modes/cbc/cbc.cpp
when building with clang trunk (21.0.0 (++20250519112653+d0ee35851bb9-1~exp1~20250519112844.1459))
(from http://apt.llvm.org/bookworm/)
when configuring as ./configure.py --minimized-build --enable-modules cbc,twofish
then building with make build/obj/lib/modes_cbc.o
The construction looks like
class secure_allocator { /* ... */ };
using secure_vector = std::vector<T, secure_allocator<T>>;
class BOTAN_PUBLIC_API(2, 0) Cipher_Mode : public SymmetricAlgorithm {
template <concepts::resizable_byte_buffer T>
void update(T& buffer, size_t offset = 0) {
// ...
}
}
class CBC_Mode : public Cipher_Mode {}
class CBC_Encryption : public CBC_Mode {
private:
void finish_msg(secure_vector<uint8_t>& final_block, size_t offset = 0) override;
}
void CBC_Encryption::finish_msg(secure_vector<uint8_t>& buffer, size_t offset) {
// ...
update(buffer, offset);
}
(there's some other callers but they all use the same update overload).
> On Thu, 19 Jun 2025 16:09:24 +0200 =?utf-8?B?0L3QsNCx?= <nabijaczleweli@nabijaczleweli.xyz> wrote:
> > + 89.76% 0.00% bench bench [.] _ZN5Botan11Cipher_Mode6updateITkNS_8concepts21resizable_byte_bufferESt6vectorIhNS_16secure_allocatorIhEEEEEvRT_m
> The llvm-cxxfilt command demangles it to "void
> Botan::Cipher_Mode::update<std::vector<unsigned char,
> Botan::secure_allocator<unsigned char>>>(std::vector<unsigned char,
> Botan::secure_allocator<unsigned char>>&, unsigned long)" but it seems
> to be ignoring part of the symbol, specifically
> "Botan::concepts::resizable_byte_buffer".
So the full declaration will be something like
template<concepts::resizable_byte_buffer = std::vector<unsigned char, Botan::secure_allocator<unsigned char>>> // except as an instantiation, not a default
void Botan::Cipher_Mode::update(std::vector<unsigned char, Botan::secure_allocator<unsigned char>>, unsigned long);
so llvm-cxxfilt gets it mostly right.
I don't really see why the concept bit is in there either,
it feels like it ought to be immaterial?
> If I delete the "Tk" from the mangled symbol then they all agree it
> should be demangled to "void
> Botan::Cipher_Mode::update<std::vector<unsigned char,
> Botan::secure_allocator<unsigned char>>>(std::vector<unsigned char,
> Botan::secure_allocator<unsigned char>>&, unsigned long)".
This must mean that's "The koncept" as an extension, then, clearly?
Maybe this wants to get forwarded to LLVM more-so than anything else.
Building with bookworm GCC doesn't give give me any symbols
matching /update/ except for an update_granularity.
Back to linux.debian.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Bug#1108037: linux-perf: perf report --demangle only works on some(?) symbols наб <nabijaczleweli@nabijaczleweli.xyz> - 2025-06-19 16:20 +0200
Bug#1108037: linux-perf: perf report --demangle only works on some(?) symbols Ben Hutchings <ben@decadent.org.uk> - 2025-07-09 18:20 +0200
Bug#1108037: linux-perf: perf report --demangle only works on some(?) symbols наб <nabijaczleweli@nabijaczleweli.xyz> - 2025-07-09 19:20 +0200
Bug#1108037: linux-perf: perf report --demangle only works on some(?) symbols Ben Hutchings <ben@decadent.org.uk> - 2025-07-11 00:30 +0200
Processed: Re: linux-perf: perf report --demangle only works on some(?) symbols "Debian Bug Tracking System" <owner@bugs.debian.org> - 2025-07-09 18:20 +0200
Processed: Re: linux-perf: perf report --demangle only works on some(?) symbols "Debian Bug Tracking System" <owner@bugs.debian.org> - 2025-07-09 19:20 +0200
Bug#1108037: 惊人的5大长寿定律,看懂了能让你一辈子不生病 Wilfred Ha <ytong8632@gmail.com> - 2025-09-18 05:40 +0200
csiph-web