Kbuild fixes for v5.9 (4th)
- Ignore compiler stubs for PPC to fix builds - Fix the usage of --target mentioned in the LLVM document -----BEGIN PGP SIGNATURE----- iQJJBAABCgAzFiEEbmPs18K1szRHjPqEPYsBB53g2wYFAl9wyzAVHG1hc2FoaXJv eUBrZXJuZWwub3JnAAoJED2LAQed4NsGlGAQAIp9spj8Qd1U5lC7YVrTnYglG4rV BHPlNsBcV0V4i6OYunnEozO2wcyjii0WpOsxuA2o1ilDxoNSPPjPG73ySU2CNUYy ZMkuPER9vk/6MLFl4lyzxlSF2VkGem3Lk2M1yGvLKiiEAR6AafxZ6CdVig7kFz1H ZJV11ms9pufCpOVDMCnazS96I/EQn60uTfiy992Xjtkaet1tEaWh1KirH2OYAbBO oNQnlpHZVXp/xnexHz9z2ctMjWBGH2cDws5iDtIHTep2lYHK5i8CqOKzfKX88NRS txBZMJjDn/U825u+P8NHNaQsC1Vo0ECAsX/5YTjsLT2BZPG049BmTe0HNGDtVTB3 bvSuRfG96L75qDxZusCtpk2TLKT7ntnV4bQYFXyilr2rZ0cXne10FmTOBhuEt1DQ r7o6/M4D2X2KpDTSIqfJRUozlyzBtmX9JBnKZIYvaC92ChhVch7b8RPeXV1IMqPS tCYpSszPbc/u15Bp2SPd7hZ1xVnKi+v8FzVRLJFLSHkWME61J/6x/v9c9jMu9buC y7vU1SNagkL2hf9YvsVWgiA5RvtYuj3o2uyMOZQiDE3h4RbxnSuM7IQKAH/hG4W0 LE5hMB925Z5+H4gOduSC1pK9uxd6r6HpmJmNd4V2qEIqikNCfYIa6i0k/k3feZKE dJPqBX3wf8FsaJkU =kjmg -----END PGP SIGNATURE----- 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.*
This commit is contained in:
commit
16bc1d5432
|
@ -39,10 +39,10 @@ which can help simplify cross compiling. ::
|
||||||
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang
|
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang
|
||||||
|
|
||||||
``CROSS_COMPILE`` is not used to prefix the Clang compiler binary, instead
|
``CROSS_COMPILE`` is not used to prefix the Clang compiler binary, instead
|
||||||
``CROSS_COMPILE`` is used to set a command line flag: ``--target <triple>``. For
|
``CROSS_COMPILE`` is used to set a command line flag: ``--target=<triple>``. For
|
||||||
example: ::
|
example: ::
|
||||||
|
|
||||||
clang --target aarch64-linux-gnu foo.c
|
clang --target=aarch64-linux-gnu foo.c
|
||||||
|
|
||||||
LLVM Utilities
|
LLVM Utilities
|
||||||
--------------
|
--------------
|
||||||
|
|
|
@ -82,6 +82,7 @@ static char *sym_name(const struct sym_entry *s)
|
||||||
|
|
||||||
static bool is_ignored_symbol(const char *name, char type)
|
static bool is_ignored_symbol(const char *name, char type)
|
||||||
{
|
{
|
||||||
|
/* Symbol names that exactly match to the following are ignored.*/
|
||||||
static const char * const ignored_symbols[] = {
|
static const char * const ignored_symbols[] = {
|
||||||
/*
|
/*
|
||||||
* Symbols which vary between passes. Passes 1 and 2 must have
|
* 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)
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Symbol names that begin with the following are ignored.*/
|
||||||
static const char * const ignored_prefixes[] = {
|
static const char * const ignored_prefixes[] = {
|
||||||
"$", /* local symbols for ARM, MIPS, etc. */
|
"$", /* local symbols for ARM, MIPS, etc. */
|
||||||
".LASANPC", /* s390 kasan local symbols */
|
".LASANPC", /* s390 kasan local symbols */
|
||||||
|
@ -113,6 +115,7 @@ static bool is_ignored_symbol(const char *name, char type)
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Symbol names that end with the following are ignored.*/
|
||||||
static const char * const ignored_suffixes[] = {
|
static const char * const ignored_suffixes[] = {
|
||||||
"_from_arm", /* arm */
|
"_from_arm", /* arm */
|
||||||
"_from_thumb", /* arm */
|
"_from_thumb", /* arm */
|
||||||
|
@ -120,9 +123,15 @@ static bool is_ignored_symbol(const char *name, char type)
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Symbol names that contain the following are ignored.*/
|
||||||
|
static const char * const ignored_matches[] = {
|
||||||
|
".long_branch.", /* ppc stub */
|
||||||
|
".plt_branch.", /* ppc stub */
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
const char * const *p;
|
const char * const *p;
|
||||||
|
|
||||||
/* Exclude symbols which vary between passes. */
|
|
||||||
for (p = ignored_symbols; *p; p++)
|
for (p = ignored_symbols; *p; p++)
|
||||||
if (!strcmp(name, *p))
|
if (!strcmp(name, *p))
|
||||||
return true;
|
return true;
|
||||||
|
@ -138,6 +147,11 @@ static bool is_ignored_symbol(const char *name, char type)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (p = ignored_matches; *p; p++) {
|
||||||
|
if (strstr(name, *p))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (type == 'U' || type == 'u')
|
if (type == 'U' || type == 'u')
|
||||||
return true;
|
return true;
|
||||||
/* exclude debugging symbols */
|
/* exclude debugging symbols */
|
||||||
|
|
Loading…
Reference in New Issue