<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 6, 2018, 18:15 Rob Landley <<a href="mailto:rob@landley.net">rob@landley.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 07/06/2018 03:14 PM, enh wrote:<br>
> i'm not sure getrandom(2) is a good choice for a compile-time probe.<br>
> certainly on Android it's common for your libc to be way ahead of your<br>
> kernel.<br>
<br>
Hmmm. I didn't expect that. (libc provides a syscall wrapper for a syscall your<br>
kernel doesn't have. Ok...)<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Isn't musl the same? </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hmmm... I can't compile time probe for what the syscalls return because cross<br>
compiling (and potentially deploying on a different kernel), and I don't want to<br>
make the fallback code ubiquitous because embedded. Hmmm...<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Why not?</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I suppose I could make the fallback code's presence depend on CONFIG_TOYBOX_ANDROID?<br>
<br>
> in this specific case, on Android getrandom(2) is very likely<br>
> to return ENOSYS. for the arc4random functions (from BSD) we'll try<br>
> getrandom but fall back to open/read/close. seems like xgetrandom<br>
> might be better off doing that, on the assumption that folks will try<br>
> to use prebuilts on old devices/hosts?<br>
<br>
Whereas on glibc I have the exact _opposite_ problem, 'FATAL: kernel too old" in<br>
the library loader or entry code, because glibc checks the kernel version and<br>
refuses to run on one older than it was built on. (I.E. gnu/dammit anything is<br>
insane, part several thousand something.)<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Oh, weird. I didn't know that. My Linux hosts usually have the opposite problem of a kernel years newer than their libc. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Lemme try a fix... ok, how's that?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I was actually assuming you'd be best off just removing the compile time check and using syscall(3). Wouldn't that be best for your musl prebuilts? And still work fine for glibc. </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Rob<br>
_______________________________________________<br>
Toybox mailing list<br>
<a href="mailto:Toybox@lists.landley.net" target="_blank" rel="noreferrer">Toybox@lists.landley.net</a><br>
<a href="http://lists.landley.net/listinfo.cgi/toybox-landley.net" rel="noreferrer noreferrer" target="_blank">http://lists.landley.net/listinfo.cgi/toybox-landley.net</a><br>
</blockquote></div></div></div>