Skip to content

Commit 16bc1d5

Browse files
committed
Merge tag 'kbuild-fixes-v5.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild fixes from Masahiro Yamada: - ignore compiler stubs for PPC to fix builds - fix the usage of --target mentioned in the LLVM document * tag 'kbuild-fixes-v5.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: Documentation/llvm: Fix clang target examples scripts/kallsyms: skip ppc compiler stub *.long_branch.* / *.plt_branch.*
2 parents f881855 + e30d694 commit 16bc1d5

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

Documentation/kbuild/llvm.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ which can help simplify cross compiling. ::
3939
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang
4040

4141
``CROSS_COMPILE`` is not used to prefix the Clang compiler binary, instead
42-
``CROSS_COMPILE`` is used to set a command line flag: ``--target <triple>``. For
42+
``CROSS_COMPILE`` is used to set a command line flag: ``--target=<triple>``. For
4343
example: ::
4444

45-
clang --target aarch64-linux-gnu foo.c
45+
clang --target=aarch64-linux-gnu foo.c
4646

4747
LLVM Utilities
4848
--------------

scripts/kallsyms.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ static char *sym_name(const struct sym_entry *s)
8282

8383
static bool is_ignored_symbol(const char *name, char type)
8484
{
85+
/* Symbol names that exactly match to the following are ignored.*/
8586
static const char * const ignored_symbols[] = {
8687
/*
8788
* Symbols which vary between passes. Passes 1 and 2 must have
@@ -104,6 +105,7 @@ static bool is_ignored_symbol(const char *name, char type)
104105
NULL
105106
};
106107

108+
/* Symbol names that begin with the following are ignored.*/
107109
static const char * const ignored_prefixes[] = {
108110
"$", /* local symbols for ARM, MIPS, etc. */
109111
".LASANPC", /* s390 kasan local symbols */
@@ -113,16 +115,23 @@ static bool is_ignored_symbol(const char *name, char type)
113115
NULL
114116
};
115117

118+
/* Symbol names that end with the following are ignored.*/
116119
static const char * const ignored_suffixes[] = {
117120
"_from_arm", /* arm */
118121
"_from_thumb", /* arm */
119122
"_veneer", /* arm */
120123
NULL
121124
};
122125

126+
/* Symbol names that contain the following are ignored.*/
127+
static const char * const ignored_matches[] = {
128+
".long_branch.", /* ppc stub */
129+
".plt_branch.", /* ppc stub */
130+
NULL
131+
};
132+
123133
const char * const *p;
124134

125-
/* Exclude symbols which vary between passes. */
126135
for (p = ignored_symbols; *p; p++)
127136
if (!strcmp(name, *p))
128137
return true;
@@ -138,6 +147,11 @@ static bool is_ignored_symbol(const char *name, char type)
138147
return true;
139148
}
140149

150+
for (p = ignored_matches; *p; p++) {
151+
if (strstr(name, *p))
152+
return true;
153+
}
154+
141155
if (type == 'U' || type == 'u')
142156
return true;
143157
/* exclude debugging symbols */

0 commit comments

Comments
 (0)