Messages in this thread |  | | Date | Fri, 11 Apr 2025 12:58:49 +0200 | | From | Peter Zijlstra <> | | Subject | Re: [PATCH] scripts/mksysmap: skip objtool __pfx_ symbols |
| |
On Fri, Apr 11, 2025 at 09:47:51AM +0200, Arnd Bergmann wrote: > On Fri, Apr 11, 2025, at 08:50, Peter Zijlstra wrote: > > On Tue, Apr 08, 2025 at 06:58:49PM -0700, Josh Poimboeuf wrote: > >> On Fri, Mar 28, 2025 at 11:48:19AM +0100, Arnd Bergmann wrote: > >> > >> For example, FineIBT writes code in the __pfx area which can trigger an > >> #UD. And we'd want a sane backtrace for that. > > > > On top of that, clang kcfi builds do a similar thing, they will generate > > __cfi_ prefixed symbols. > > > > And yes, those symbols exist for a reason, there is code there under > > various circumstances and backtraces look really weird without these > > symbols on -- notably the code in the prefix will be attributed to > > whatever symbol comes before, most confusing. > > > > So yeah, don't remove these symbols, and fix the kunit test. > > kallsyms already removes some CFI symbol names based on regular > expressions: > > # CFI type identifiers > / __kcfi_typeid_/d > / __kvm_nvhe___kcfi_typeid_/d > / __pi___kcfi_typeid_/d > > Do you think it should not remove some of them?
Those are typeid symbols, those are fine to remove.
> I ran into another problem with generated symbols that I don't > understand yet, and added this line to avoid the build failures: > > / _GLOBAL__sub_/d > > This one is 534 characters long: > _GLOBAL__sub_I_65535_1_snnnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nnnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nnnnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nnnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nnng1h2i3j4k5l6m7ng1h2i3j4k5l6m7nng1h2i3j4k5l6m7ng1h2i3j4k5l6m7n
I've not seen those before; google seems to suggest this is part of static initializers.
|  |