Here is a new attempt at providing the getrandom system call. I have retained the __getrandom symbol mangling. The justification for that is that getrandom is a fairly common name. Application code might use it for something else entirely and interpose their definition, so that libraries cannot rely on it doing the right thing. I think the mangling is justified because it is hard to spot that getrandom is broken due to interposition. As is a new header, the macro will be exposed to few applications. I have made the system call wrapper a cancellation point. (If we implement the simpler getentropy interface, it would not be a cancellation point.) Thanks, Florian