diff mbox series

[v6,01/20] Revert "modpost: skip ELF local symbols during section mismatch check"

Message ID 20230521160426.1881124-2-masahiroy@kernel.org (mailing list archive)
State New, archived
Headers show
Series Unify <linux/export.h> and <asm/export.h>, remove EXPORT_DATA_SYMBOL(), faster TRIM_UNUSED_KSYMS | expand

Commit Message

Masahiro Yamada May 21, 2023, 4:04 p.m. UTC
This reverts commit a4d26f1a0958bb1c2b60c6f1e67c6f5d43e2647b.

The variable 'fromsym' never starts with ".L" since commit 87e5b1e8f257
("module: Sync code of is_arm_mapping_symbol()").

In other words, Pattern 6 is now dead code.

Previously, the .LANCHOR1 hid the symbols listed in Pattern 2, but
a4d26f1a0958 was a cheesy workaround.

87e5b1e8f257 addressed the issue in a much better way.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 scripts/mod/modpost.c | 12 ------------
 1 file changed, 12 deletions(-)

Comments

Nick Desaulniers May 22, 2023, 5:42 p.m. UTC | #1
On Sun, May 21, 2023 at 9:05 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> This reverts commit a4d26f1a0958bb1c2b60c6f1e67c6f5d43e2647b.

a4d26f1a0958 mentions -fsection-anchors which I see used in:
arch/arc/Makefile
41:cflags-y += -fsection-anchors

Though based on the below, it looks like is_mapping_symbol() will
catch this case.

Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

>
> The variable 'fromsym' never starts with ".L" since commit 87e5b1e8f257
> ("module: Sync code of is_arm_mapping_symbol()").
>
> In other words, Pattern 6 is now dead code.
>
> Previously, the .LANCHOR1 hid the symbols listed in Pattern 2, but
> a4d26f1a0958 was a cheesy workaround.
>
> 87e5b1e8f257 addressed the issue in a much better way.

is_arm_mapping_symbol is gone from scripts/mod/modpost.c. It was moved
then renamed to is_mapping_symbol.  Maybe not relevant for the commit
message, but maybe helpful to other reviewers.

commit 987d2e0aaa55 ("module: Move is_arm_mapping_symbol() to module_symbol.h")
commit 0a3bf86092c3 ("module: Ignore L0 and rename is_arm_mapping_symbol()")


>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
>  scripts/mod/modpost.c | 12 ------------
>  1 file changed, 12 deletions(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index 0d2c2aff2c03..71de14544432 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -1034,14 +1034,6 @@ static const struct sectioncheck *section_mismatch(
>   *   fromsec = text section
>   *   refsymname = *.constprop.*
>   *
> - * Pattern 6:
> - *   Hide section mismatch warnings for ELF local symbols.  The goal
> - *   is to eliminate false positive modpost warnings caused by
> - *   compiler-generated ELF local symbol names such as ".LANCHOR1".
> - *   Autogenerated symbol names bypass modpost's "Pattern 2"
> - *   whitelisting, which relies on pattern-matching against symbol
> - *   names to work.  (One situation where gcc can autogenerate ELF
> - *   local symbols is when "-fsection-anchors" is used.)
>   **/
>  static int secref_whitelist(const struct sectioncheck *mismatch,
>                             const char *fromsec, const char *fromsym,
> @@ -1092,10 +1084,6 @@ static int secref_whitelist(const struct sectioncheck *mismatch,
>             match(fromsym, optim_symbols))
>                 return 0;
>
> -       /* Check for pattern 6 */
> -       if (strstarts(fromsym, ".L"))
> -               return 0;
> -
>         return 1;
>  }
>
> --
> 2.39.2
>
diff mbox series

Patch

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 0d2c2aff2c03..71de14544432 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1034,14 +1034,6 @@  static const struct sectioncheck *section_mismatch(
  *   fromsec = text section
  *   refsymname = *.constprop.*
  *
- * Pattern 6:
- *   Hide section mismatch warnings for ELF local symbols.  The goal
- *   is to eliminate false positive modpost warnings caused by
- *   compiler-generated ELF local symbol names such as ".LANCHOR1".
- *   Autogenerated symbol names bypass modpost's "Pattern 2"
- *   whitelisting, which relies on pattern-matching against symbol
- *   names to work.  (One situation where gcc can autogenerate ELF
- *   local symbols is when "-fsection-anchors" is used.)
  **/
 static int secref_whitelist(const struct sectioncheck *mismatch,
 			    const char *fromsec, const char *fromsym,
@@ -1092,10 +1084,6 @@  static int secref_whitelist(const struct sectioncheck *mismatch,
 	    match(fromsym, optim_symbols))
 		return 0;
 
-	/* Check for pattern 6 */
-	if (strstarts(fromsym, ".L"))
-		return 0;
-
 	return 1;
 }