Re: [PATCHv3 2/2] x86/vdso: Add build salt to the vDSO

From: Masahiro Yamada
Date: Wed May 23 2018 - 19:19:47 EST


2018-05-24 7:53 GMT+09:00 Laura Abbott <labbott@xxxxxxxxxx>:
> On 05/22/2018 05:33 PM, Andy Lutomirski wrote:
>>
>> On Tue, May 22, 2018 at 5:19 PM Laura Abbott <labbott@xxxxxxxxxx> wrote:
>>
>>
>>> The vDSO is linked separately from the kernel and modules. Ensure it
>>> picks
>>> up the comment section, if available.
>>
>>
>> Did you end up preferring this to just sticking the kernel version in a
>> .comment in the vDSO for some reason?
>>
>
> Actually I remember now why this is necessary: there is not a simple way
> to encode a string into a linker file as it has to be spit out byte
> by byte. The autogeneration was the easiest way to make that happen.
> Maybe there's some horrific c preprocessing or other generation that
> could happen but I doubt that's any worse than the generated linker
> script.
>


I am personally prefer CONFIG option (as you did in v2) to KERNELVERSION.


If you use "hex" type instead of "string" type in Kconfig,
and LONG() instead of BYTE() in the script script,
this can be much simpler, right?





config BUILD_ID_SALT
hex "Build ID Salt"
help
...




Then, in scripts/Makefile,


define filechk_build-salt.lds
{ \
echo "SECTIONS {"; \
echo ".comment (INFO) : { LONG($(CONFIG_BUILD_ID_SALT)); }"; \
echo "}"; \
}
endef

$(obj)/build-salt.lds: $(src)/Makefile FORCE
$(call filechk,build-salt.lds)




This is now so simple that we can even remove the shell script.





--
Best Regards
Masahiro Yamada