Message ID | 20230728113415.21067-3-will@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix 'faddr2line' for LLVM arm64 builds | expand |
On Fri 28 Jul 2023 12:34:13 GMT, Will Deacon wrote: > To prepare for 'faddr2line' reusing the same ignored symbols list as > 'mksysmap', factor out the relevant sed expression into its own script, > removing the double-escapes for '$' symbols as they are no longer > required. > > Cc: Masahiro Yamada <masahiroy@kernel.org> > Cc: Nathan Chancellor <nathan@kernel.org> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: Nicolas Schier <nicolas@fjasle.eu> > Cc: Josh Poimboeuf <jpoimboe@kernel.org> > Cc: John Stultz <jstultz@google.com> > Cc: linux-kbuild@vger.kernel.org > Signed-off-by: Will Deacon <will@kernel.org> > --- Thanks! Reviewed-by: Nicolas Schier <nicolas@fjasle.eu> > scripts/mksysmap | 77 +-------------------------------- > scripts/sysmap-ignored-syms.sed | 74 +++++++++++++++++++++++++++++++ > 2 files changed, 75 insertions(+), 76 deletions(-) > create mode 100644 scripts/sysmap-ignored-syms.sed > > diff --git a/scripts/mksysmap b/scripts/mksysmap > index 9ba1c9da0a40..a98b34363258 100755 > --- a/scripts/mksysmap > +++ b/scripts/mksysmap > @@ -16,7 +16,7 @@ > # 'W' or 'w'. > # > > -${NM} -n ${1} | sed >${2} -e " > +${NM} -n ${1} | sed >${2} -f $(dirname $0)/sysmap-ignored-syms.sed -e " > # --------------------------------------------------------------------------- > # Ignored symbol types > # > @@ -27,81 +27,6 @@ ${NM} -n ${1} | sed >${2} -e " > # w: local weak symbols > / [aNUw] /d > > -# --------------------------------------------------------------------------- > -# Ignored prefixes > -# (do not forget a space before each pattern) > - > -# local symbols for ARM, MIPS, etc. > -/ \\$/d > - > -# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. > -/ \.L/d > - > -# arm64 EFI stub namespace > -/ __efistub_/d > - > -# arm64 local symbols in PIE namespace > -/ __pi_\\$/d > -/ __pi_\.L/d > - > -# arm64 local symbols in non-VHE KVM namespace > -/ __kvm_nvhe_\\$/d > -/ __kvm_nvhe_\.L/d > - > -# arm64 lld > -/ __AArch64ADRPThunk_/d > - > -# arm lld > -/ __ARMV5PILongThunk_/d > -/ __ARMV7PILongThunk_/d > -/ __ThumbV7PILongThunk_/d > - > -# mips lld > -/ __LA25Thunk_/d > -/ __microLA25Thunk_/d > - > -# CFI type identifiers > -/ __kcfi_typeid_/d > -/ __kvm_nvhe___kcfi_typeid_/d > -/ __pi___kcfi_typeid_/d > - > -# CRC from modversions > -/ __crc_/d > - > -# EXPORT_SYMBOL (symbol name) > -/ __kstrtab_/d > - > -# EXPORT_SYMBOL (namespace) > -/ __kstrtabns_/d > - > -# --------------------------------------------------------------------------- > -# Ignored suffixes > -# (do not forget '$' after each pattern) > - > -# arm > -/_from_arm$/d > -/_from_thumb$/d > -/_veneer$/d > - > -# --------------------------------------------------------------------------- > -# Ignored symbols (exact match) > -# (do not forget a space before and '$' after each pattern) > - > -# for LoongArch? > -/ L0$/d > - > -# ppc > -/ _SDA_BASE_$/d > -/ _SDA2_BASE_$/d > - > -# --------------------------------------------------------------------------- > -# Ignored patterns > -# (symbols that contain the pattern are ignored) > - > -# ppc stub > -/\.long_branch\./d > -/\.plt_branch\./d > - > # --------------------------------------------------------------------------- > # Ignored kallsyms symbols > # > diff --git a/scripts/sysmap-ignored-syms.sed b/scripts/sysmap-ignored-syms.sed > new file mode 100644 > index 000000000000..14b9eb2c9ed9 > --- /dev/null > +++ b/scripts/sysmap-ignored-syms.sed > @@ -0,0 +1,74 @@ > +# --------------------------------------------------------------------------- > +# Ignored prefixes > +# (do not forget a space before each pattern) > + > +# local symbols for ARM, MIPS, etc. > +/ \$/d > + > +# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. > +/ \.L/d > + > +# arm64 EFI stub namespace > +/ __efistub_/d > + > +# arm64 local symbols in PIE namespace > +/ __pi_\$/d > +/ __pi_\.L/d > + > +# arm64 local symbols in non-VHE KVM namespace > +/ __kvm_nvhe_\$/d > +/ __kvm_nvhe_\.L/d > + > +# arm64 lld > +/ __AArch64ADRPThunk_/d > + > +# arm lld > +/ __ARMV5PILongThunk_/d > +/ __ARMV7PILongThunk_/d > +/ __ThumbV7PILongThunk_/d > + > +# mips lld > +/ __LA25Thunk_/d > +/ __microLA25Thunk_/d > + > +# CFI type identifiers > +/ __kcfi_typeid_/d > +/ __kvm_nvhe___kcfi_typeid_/d > +/ __pi___kcfi_typeid_/d > + > +# CRC from modversions > +/ __crc_/d > + > +# EXPORT_SYMBOL (symbol name) > +/ __kstrtab_/d > + > +# EXPORT_SYMBOL (namespace) > +/ __kstrtabns_/d > + > +# --------------------------------------------------------------------------- > +# Ignored suffixes > +# (do not forget '$' after each pattern) > + > +# arm > +/_from_arm$/d > +/_from_thumb$/d > +/_veneer$/d > + > +# --------------------------------------------------------------------------- > +# Ignored symbols (exact match) > +# (do not forget a space before and '$' after each pattern) > + > +# for LoongArch? > +/ L0$/d > + > +# ppc > +/ _SDA_BASE_$/d > +/ _SDA2_BASE_$/d > + > +# --------------------------------------------------------------------------- > +# Ignored patterns > +# (symbols that contain the pattern are ignored) > + > +# ppc stub > +/\.long_branch\./d > +/\.plt_branch\./d > -- > 2.41.0.487.g6d72f3e995-goog
diff --git a/scripts/mksysmap b/scripts/mksysmap index 9ba1c9da0a40..a98b34363258 100755 --- a/scripts/mksysmap +++ b/scripts/mksysmap @@ -16,7 +16,7 @@ # 'W' or 'w'. # -${NM} -n ${1} | sed >${2} -e " +${NM} -n ${1} | sed >${2} -f $(dirname $0)/sysmap-ignored-syms.sed -e " # --------------------------------------------------------------------------- # Ignored symbol types # @@ -27,81 +27,6 @@ ${NM} -n ${1} | sed >${2} -e " # w: local weak symbols / [aNUw] /d -# --------------------------------------------------------------------------- -# Ignored prefixes -# (do not forget a space before each pattern) - -# local symbols for ARM, MIPS, etc. -/ \\$/d - -# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. -/ \.L/d - -# arm64 EFI stub namespace -/ __efistub_/d - -# arm64 local symbols in PIE namespace -/ __pi_\\$/d -/ __pi_\.L/d - -# arm64 local symbols in non-VHE KVM namespace -/ __kvm_nvhe_\\$/d -/ __kvm_nvhe_\.L/d - -# arm64 lld -/ __AArch64ADRPThunk_/d - -# arm lld -/ __ARMV5PILongThunk_/d -/ __ARMV7PILongThunk_/d -/ __ThumbV7PILongThunk_/d - -# mips lld -/ __LA25Thunk_/d -/ __microLA25Thunk_/d - -# CFI type identifiers -/ __kcfi_typeid_/d -/ __kvm_nvhe___kcfi_typeid_/d -/ __pi___kcfi_typeid_/d - -# CRC from modversions -/ __crc_/d - -# EXPORT_SYMBOL (symbol name) -/ __kstrtab_/d - -# EXPORT_SYMBOL (namespace) -/ __kstrtabns_/d - -# --------------------------------------------------------------------------- -# Ignored suffixes -# (do not forget '$' after each pattern) - -# arm -/_from_arm$/d -/_from_thumb$/d -/_veneer$/d - -# --------------------------------------------------------------------------- -# Ignored symbols (exact match) -# (do not forget a space before and '$' after each pattern) - -# for LoongArch? -/ L0$/d - -# ppc -/ _SDA_BASE_$/d -/ _SDA2_BASE_$/d - -# --------------------------------------------------------------------------- -# Ignored patterns -# (symbols that contain the pattern are ignored) - -# ppc stub -/\.long_branch\./d -/\.plt_branch\./d - # --------------------------------------------------------------------------- # Ignored kallsyms symbols # diff --git a/scripts/sysmap-ignored-syms.sed b/scripts/sysmap-ignored-syms.sed new file mode 100644 index 000000000000..14b9eb2c9ed9 --- /dev/null +++ b/scripts/sysmap-ignored-syms.sed @@ -0,0 +1,74 @@ +# --------------------------------------------------------------------------- +# Ignored prefixes +# (do not forget a space before each pattern) + +# local symbols for ARM, MIPS, etc. +/ \$/d + +# local labels, .LBB, .Ltmpxxx, .L__unnamed_xx, .LASANPC, etc. +/ \.L/d + +# arm64 EFI stub namespace +/ __efistub_/d + +# arm64 local symbols in PIE namespace +/ __pi_\$/d +/ __pi_\.L/d + +# arm64 local symbols in non-VHE KVM namespace +/ __kvm_nvhe_\$/d +/ __kvm_nvhe_\.L/d + +# arm64 lld +/ __AArch64ADRPThunk_/d + +# arm lld +/ __ARMV5PILongThunk_/d +/ __ARMV7PILongThunk_/d +/ __ThumbV7PILongThunk_/d + +# mips lld +/ __LA25Thunk_/d +/ __microLA25Thunk_/d + +# CFI type identifiers +/ __kcfi_typeid_/d +/ __kvm_nvhe___kcfi_typeid_/d +/ __pi___kcfi_typeid_/d + +# CRC from modversions +/ __crc_/d + +# EXPORT_SYMBOL (symbol name) +/ __kstrtab_/d + +# EXPORT_SYMBOL (namespace) +/ __kstrtabns_/d + +# --------------------------------------------------------------------------- +# Ignored suffixes +# (do not forget '$' after each pattern) + +# arm +/_from_arm$/d +/_from_thumb$/d +/_veneer$/d + +# --------------------------------------------------------------------------- +# Ignored symbols (exact match) +# (do not forget a space before and '$' after each pattern) + +# for LoongArch? +/ L0$/d + +# ppc +/ _SDA_BASE_$/d +/ _SDA2_BASE_$/d + +# --------------------------------------------------------------------------- +# Ignored patterns +# (symbols that contain the pattern are ignored) + +# ppc stub +/\.long_branch\./d +/\.plt_branch\./d
To prepare for 'faddr2line' reusing the same ignored symbols list as 'mksysmap', factor out the relevant sed expression into its own script, removing the double-escapes for '$' symbols as they are no longer required. Cc: Masahiro Yamada <masahiroy@kernel.org> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Nicolas Schier <nicolas@fjasle.eu> Cc: Josh Poimboeuf <jpoimboe@kernel.org> Cc: John Stultz <jstultz@google.com> Cc: linux-kbuild@vger.kernel.org Signed-off-by: Will Deacon <will@kernel.org> --- scripts/mksysmap | 77 +-------------------------------- scripts/sysmap-ignored-syms.sed | 74 +++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 76 deletions(-) create mode 100644 scripts/sysmap-ignored-syms.sed