Re: [PATCH 1/1] depmod: pass -P $CONFIG_SYMBOL_PREFIX

James Hogan
2013-02-05T10:33:39Z

[-- Attachment #1: Type: text/plain, Size: 2338 bytes --]

Hi Mike,

On 03/02/13 06:17, Mike Frysinger wrote:
> On Thursday 31 January 2013 04:41:43 James Hogan wrote:
>> --- a/Makefile
>> +++ b/Makefile
>>
>> +ifneq ($(patsubst "%",%,$(CONFIG_SYMBOL_PREFIX)),)
>> + depmod_args = -P $(patsubst "%",%,$(CONFIG_SYMBOL_PREFIX))
>> +endif
>> ...
>> # Run depmod only if we have System.map and depmod is executable
>> quiet_cmd_depmod = DEPMOD $(KERNELRELEASE)
>> cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \
>> - $(KERNELRELEASE)
>> + $(KERNELRELEASE) $(depmod_args)
>
> scripts/Makefile.lib just does:
> ifdef CONFIG_SYMBOL_PREFIX
> so you should do the same

arch/openrisc/Kconfig now defines SYMBOL_PREFIX as "", so this isn't
sufficient (arguably it probably shouldn't be defined empty like that?)

>
> that said, cmd_depmod is just a shell command. and you're running another
> script helper (depmod.sh). how about passing it unconditionally ?
> cmd_depmod = ... -P "$(CONFIG_SYMBOL_PREFIX)"
>
> since the default will be "no prefix", using -P "" is the same thing.

Yep, I could do this, but depmod.sh would need modifying to drop it if
the prefix is empty, otherwise you get the following from depmod:
FATAL: -P only takes a single char

I don't mind adding that, but what do you think?

>
>> --- a/scripts/depmod.sh
>> +++ b/scripts/depmod.sh
>>
>> DEPMOD=$1
>> -KERNELRELEASE=$2
>> +shift
>> +KERNELRELEASE=$1
>> +shift
>
> you can do:
> DEPMOD=$1
> KERNELRELEASE=$2
> shift 2

neat, thanks

>
>> +# older versions of depmod don't support -P <symbol-prefix>
>> +# support was added in module-init-tools 3.13
>> +if test "$1" = "-P"; then
>> + release=$("$DEPMOD" --version)
>> + package=$(echo "$release" | cut -d' ' -f 1)
>> + if test "$package" = "module-init-tools"; then
>> + version=$(echo "$release" | cut -d' ' -f 2)
>> + later=$({ echo "$version"; echo "3.13"; } | sort -V | tail -n 1)
>
> you could do instead:
> later=$(printf '%s\n' "$version" "3.13" | sort -V | tail -n 1)

yep, definitely better, thanks

>
>> + if test "$later" != "$version"; then
>> + # module-init-tools < 3.13, drop the next 2 args
>> + shift
>> + shift
>> + fi
>
> shift 2

ok

Thanks for the suggestions

Cheers
James

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]