How to implement a kernel feature check in the crt* files?
Andreas Krebbel
krebbel@linux.vnet.ibm.com
Thu Jan 7 12:33:00 GMT 2010
Hi Jakub,
Jakub Jelinek wrote:
> I'd prefer e_flags bit. No idea why you want to implement this in crt1.o,
> I'd just do this in elf_machine_matches_host and in kernel's ELF loader.
The check will only ever trigger when running a binary requiring the kernel
feature on an older kernel not providing it. And an older kernel would then also
not have the check. So as I understand it the binary itself already has to come
with the check otherwise there is no way to do it.
> For some examples see e.g. sparc, which doesn't use e_flags bit, but
> has a special EM_ code EM_SPARC32PLUS.
> The advantage of e_flags is that it can be easily merged during linking
> from multiple input objects (if any of the input objects has the bit set,
> set it in the output), and can be cheaply tested by the kernel.
Yes the e_flags mechanism would be very easy to implement. I've an experimental
binutils patch for that with less than 100 lines.
Bye,
-Andreas-
More information about the Libc-help
mailing list