7110157e94
getentropy is originally an OpenBSD-ism, where it was in <unistd.h> from day one: https://man.openbsd.org/OpenBSD-5.6/getentropy FreeBSD's and Linux's current man pages also document it this way: https://man7.org/linux/man-pages/man3/getentropy.3.html https://man.freebsd.org/cgi/man.cgi?query=getentropy&sektion=3&format=html The man7.org URL is even cited by bionic itself in the comments, though glibc originally put it in <sys/random.h> and added to <unistd.h> very shortly afterwards: https://sourceware.org/bugzilla/show_bug.cgi?id=17252#c9 The cited man page (maintained separately from glibc) originally documented <sys/random.h>... https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/commit/man3/getentropy.3?id=b0265728162cdcafb8e7d7f1372e8de1a4c963ed But similarly fixed it to <unistd.h> three months later: https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/commit/man3/getentropy.3?id=9cf011f94b56e8832c5a5d8cf66d4a115d34b9cc musl matches the BSDs in putting it in <unistd.h>, but not <sys/random.h>. https://git.musl-libc.org/cgit/musl/tree/include/unistd.h?id=25e6fee27f4a293728dd15b659170e7b9c7db9bc#n183 POSIX will likely place it there too: https://www.austingroupbugs.net/view.php?id=1134 macOS and Fuchsia place it in <sys/random.h> and not <unistd.h>, though given the rest of this precedent, they're clearly outliers. (Note iOS does *not* have getentropy, just macOS. The system has it, but it's not exposed as public API. See https://dev.gnupg.org/T5375 and https://github.com/openssl/openssl/pull/15924.) Use the more standard location in bionic and put getentropy in <unistd.h>. This will improve portability and avoid needing workarounds in BoringSSL. For compatibility, keep it also available in <sys/random.h> by using a <bits/getentropy.h> header. BYPASS_INCLUSIVE_LANGUAGE_REASON=Above URLs are not hosted by Android and reference the name of a command-line utility, short for 'manual', as in instruction manual Bug: 290898063 Test: treehugger Change-Id: Id2d6b6ea09d814e5ba2cb117a7af2c74861148fb |
||
---|---|---|
.. | ||
_system_properties.h | ||
auxv.h | ||
cachectl.h | ||
capability.h | ||
cdefs.h | ||
endian.h | ||
epoll.h | ||
errno.h | ||
eventfd.h | ||
fcntl.h | ||
file.h | ||
fsuid.h | ||
ifunc.h | ||
inotify.h | ||
ioctl.h | ||
ipc.h | ||
klog.h | ||
limits.h | ||
mman.h | ||
mount.h | ||
msg.h | ||
mtio.h | ||
param.h | ||
personality.h | ||
pidfd.h | ||
poll.h | ||
prctl.h | ||
procfs.h | ||
ptrace.h | ||
queue.h | ||
quota.h | ||
random.h | ||
reboot.h | ||
reg.h | ||
resource.h | ||
select.h | ||
sem.h | ||
sendfile.h | ||
shm.h | ||
signal.h | ||
signalfd.h | ||
socket.h | ||
stat.h | ||
statfs.h | ||
statvfs.h | ||
swap.h | ||
syscall.h | ||
sysconf.h | ||
sysinfo.h | ||
syslog.h | ||
sysmacros.h | ||
system_properties.h | ||
thread_properties.h | ||
time.h | ||
timerfd.h | ||
times.h | ||
timex.h | ||
ttydefaults.h | ||
types.h | ||
ucontext.h | ||
uio.h | ||
un.h | ||
unistd.h | ||
user.h | ||
utsname.h | ||
vfs.h | ||
vt.h | ||
wait.h | ||
xattr.h |