On Thu, Nov 04, 2021 at 10:56:04AM +0100, Florian Weimer wrote:
>> The general case of any statically linked code. It could be
libgcc,
>> startup files, the non-shared bits of glibc, static-only libraries, or
>> header-only C++ libraries.
> This would be indeed useful, but quite harder to do automagically I
> think?
It requires some level of toolchain support, in compilers and linkers.
It's unlikely that this would use a JSON-based approach, though. I
think what we want in the linker for this is that it de-duplicates and
merges individual artifact identifiers, so that one ends up with a
single string "glibc-2.34-7.fc35" instead of multiple copies of it. But
I can't see us implementing JSON processing in the linker (all four of
them).
I think JSON is a bad idea for the notes in this proposal either, it really
wastes memory per process and so should be encoded in some binary form in as
few bytes as possible, or perhaps at least compressed JSON.
For the package NVR gathering from all the *.o/*.a files, I'm not sure you
need much toolchain support, just let some brp-* policy file inject
a SHF_MERGE|SHF_STRINGS (and please, non-SHF_ALLOC!) note section with
sh_addralign 1 and the linkers should DTRT already.
Jakub