diff mbox series

[v3,2/4] scripts/mksysmap: Factor out sed ignored symbols expression into script

Message ID 20230728113415.21067-3-will@kernel.org (mailing list archive)
State New, archived
Headers show
Series Fix 'faddr2line' for LLVM arm64 builds | expand

Commit Message

Will Deacon July 28, 2023, 11:34 a.m. UTC
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

Comments

Nicolas Schier July 29, 2023, 6:38 p.m. UTC | #1
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 mbox series

Patch

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