History log of /bionic/libc/bionic/__set_errno.cpp
Revision Date Author Comments
7efad83d430f4d824f2aaa75edea5106f6ff8aae 09-Sep-2014 Elliott Hughes <enh@google.com> Ensure __set_errno is still visible on LP32.

The use of the .hidden directive to avoid going via the PLT for
__set_errno had the side-effect of actually making __set_errno
hidden (which is odd because assembler directives don't usually
affect symbols defined in a different file --- you can't even
create a weak reference to a symbol that's defined in a different
file).

This change switches the system call stubs over to a new always-hidden
__set_errno_internal and has a visible __set_errno on LP32 just for
binary compatibility with old NDK apps.

Bug: 17423135
Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
3d19a8319b9c27af8aa5cfbf495da0fe7fa62d3e 15-Feb-2014 Colin Cross <ccross@android.com> bionic: fix __set_errno for arm64 syscalls that return a 64-bit value

bionic/libc/arch-arm64/syscalls/read.S ends with:
b.hi __set_errno
ret
END(read)

If __set_errno returns int, it will set w0 to 0xFFFFFFFF, which means
x0 is 0x00000000FFFFFFFF. When interpreted as a ssize_t that is
INT_MAX, not -1.

Change __set_errno to return long, which will cause x0 to be set instead
of w0.

Change-Id: I9f9ea0f2995928d2ea240eb2ff7758ecdf0ff412
3198850ea125f746efabd1a81e3bd7cfa58cc600 23-Mar-2013 Elliott Hughes <enh@google.com> Unhide __set_errno for backwards compatibility.

This was in <errno.h>, and people called it :-(

Change-Id: I038490be77eb9372b3f31305ec580fa7b09c983e
9aceab50155b17741faded1fb22e2daa51a07fb1 12-Mar-2013 Elliott Hughes <enh@google.com> Use the kernel's MAX_ERRNO in the syscall stubs.

Bug: http://code.google.com/p/android/issues/detail?id=53104
Change-Id: Iaabf7025b153e96dc5eca231a33a32d4cb7d8116
cb2069bf69b14f0e76593e1ec4d1deb6fa15232c 12-Mar-2013 Elliott Hughes <enh@google.com> Support large errno values on ARM.

Bug: http://code.google.com/p/android/issues/detail?id=53104
Change-Id: Ic6c40be2dc50f0644a3d8b09ceae59c38f2d5b53
4a9e837840fda3aaea48aeba85c7c7a8782d2586 30-Nov-2012 Elliott Hughes <enh@google.com> Reduce the exposure of the __set_errno implementation detail.

Change-Id: I395e1b46a9491e34fc53e71853e932ea90b3d1cc