Messages in this thread Patch in this message | | | Date | Tue, 4 Feb 2020 14:44:15 +0000 | From | Matthias Maennich <> | Subject | Re: [PATCH v2] kbuild: allow symbol whitelisting with TRIM_UNUSED_KSYMS |
| |
On Fri, Jan 31, 2020 at 05:40:55PM +0000, Quentin Perret wrote: >On Friday 31 Jan 2020 at 13:15:08 (+0000), 'Matthias Maennich' via kernel-team wrote: >> On Wed, Jan 29, 2020 at 06:15:41PM +0000, Quentin Perret wrote: >> > diff --git a/scripts/adjust_autoksyms.sh b/scripts/adjust_autoksyms.sh >> > index a904bf1f5e67..8e1b7f70e800 100755 >> > --- a/scripts/adjust_autoksyms.sh >> > +++ b/scripts/adjust_autoksyms.sh >> > @@ -48,6 +48,7 @@ cat > "$new_ksyms_file" << EOT >> > EOT >> > sed 's/ko$/mod/' modules.order | >> > xargs -n1 sed -n -e '2{s/ /\n/g;/^$/!p;}' -- | >> > +cat - "${CONFIG_UNUSED_KSYMS_WHITELIST:-/dev/null}" | >> >> This handles absolute paths very well. I wonder whether we can make this >> more useful for folks that want to maintain such a whitelist in their >> copy of the tree. Lets say, I have in my sources >> arch/x86/configs/x86_64_symbol_whitelist and in my config I have >> CONFIG_UNUSED_KSYMS_WHITELIST="arch/x86/configs/x86_64_symbol_whitelist". >> >> If I see it correctly, UNUSED_KSYMS_WHITELIST is currently either an >> absolute path or a relative path to the current build directory. I would >> prefer if relative paths would be relative to the source directory to >> support the above use case. (Note, that scenario above works if I build >> directly in the sources, but fails if I build O=/somewhere/else.) > >Right, that is an interesting use case. I suppose something like the >below should work (with appropriate documentation of the config option). > >---8<--- >diff --git a/scripts/adjust_autoksyms.sh b/scripts/adjust_autoksyms.sh >index 8e1b7f70e800..d37803fd75ce 100755 >--- a/scripts/adjust_autoksyms.sh >+++ b/scripts/adjust_autoksyms.sh >@@ -38,6 +38,12 @@ esac > # We need access to CONFIG_ symbols > . include/config/auto.conf > >+ksym_wl="${CONFIG_UNUSED_KSYMS_WHITELIST:-/dev/null}" >+# If the path is relative, it must be relative to the source tree >+if [ "$ksym_wl" == "${ksym_wl#/}" ]; then >+ ksym_wl="$abs_srctree/$ksym_wl" >+fi >+ > # Generate a new ksym list file with symbols needed by the current > # set of modules. > cat > "$new_ksyms_file" << EOT >@@ -48,7 +54,7 @@ cat > "$new_ksyms_file" << EOT > EOT > sed 's/ko$/mod/' modules.order | > xargs -n1 sed -n -e '2{s/ /\n/g;/^$/!p;}' -- | >-cat - "${CONFIG_UNUSED_KSYMS_WHITELIST:-/dev/null}" | >+cat - "$ksym_wl" | > sort -u | > sed -e 's/\(.*\)/#define __KSYM_\1 1/' >> "$new_ksyms_file" >--->8--- > >Thoughts ?
That definitely looks like I would expect that config option to work. Thanks for looking into that!
Cheers, Matthias
> >Thanks, >Quentin
| |