diff options
author | Elliott Hughes <enh@google.com> | 2016-07-14 16:54:23 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-07-14 16:54:23 +0000 |
commit | 85f900d58902bc54ac3f6efc7240de0a576ba51c (patch) | |
tree | 78476cb16d645b46d593b1b52e13b995a67723e9 | |
parent | 48cedda02a9874d59b2b3652d0427abce7fedaab (diff) | |
parent | 4ce902c30e087f45c6d6ede2012519e2eea44194 (diff) | |
download | bionic-85f900d58902bc54ac3f6efc7240de0a576ba51c.tar.gz |
Merge "Support 32-bit ARM vdso."android-n-preview-5
-rw-r--r-- | libc/SYSCALLS.TXT | 8 | ||||
-rw-r--r-- | libc/arch-arm/syscalls/__clock_gettime.S (renamed from libc/arch-arm/syscalls/clock_gettime.S) | 4 | ||||
-rw-r--r-- | libc/arch-arm/syscalls/__gettimeofday.S (renamed from libc/arch-arm/syscalls/gettimeofday.S) | 4 | ||||
-rw-r--r-- | libc/bionic/vdso.cpp | 4 | ||||
-rw-r--r-- | libc/private/bionic_vdso.h | 3 |
5 files changed, 13 insertions, 10 deletions
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT index 0c59c9205..5188b6dd9 100644 --- a/libc/SYSCALLS.TXT +++ b/libc/SYSCALLS.TXT @@ -350,7 +350,7 @@ int __set_tls:set_thread_area(void*) mips,mips64 int __set_thread_area:set_thread_area(void*) x86 # vdso stuff. -int clock_gettime(clockid_t, timespec*) arm,mips,mips64 -int __clock_gettime:clock_gettime(clockid_t, timespec*) arm64,x86,x86_64 -int gettimeofday(timeval*, timezone*) arm,mips,mips64 -int __gettimeofday:gettimeofday(timeval*, timezone*) arm64,x86,x86_64 +int clock_gettime(clockid_t, timespec*) mips,mips64 +int __clock_gettime:clock_gettime(clockid_t, timespec*) arm,arm64,x86,x86_64 +int gettimeofday(timeval*, timezone*) mips,mips64 +int __gettimeofday:gettimeofday(timeval*, timezone*) arm,arm64,x86,x86_64 diff --git a/libc/arch-arm/syscalls/clock_gettime.S b/libc/arch-arm/syscalls/__clock_gettime.S index 61a95dd2c..30eff0338 100644 --- a/libc/arch-arm/syscalls/clock_gettime.S +++ b/libc/arch-arm/syscalls/__clock_gettime.S @@ -2,7 +2,7 @@ #include <private/bionic_asm.h> -ENTRY(clock_gettime) +ENTRY(__clock_gettime) mov ip, r7 .cfi_register r7, ip ldr r7, =__NR_clock_gettime @@ -13,4 +13,4 @@ ENTRY(clock_gettime) bxls lr neg r0, r0 b __set_errno_internal -END(clock_gettime) +END(__clock_gettime) diff --git a/libc/arch-arm/syscalls/gettimeofday.S b/libc/arch-arm/syscalls/__gettimeofday.S index f5ed67424..de0eca5eb 100644 --- a/libc/arch-arm/syscalls/gettimeofday.S +++ b/libc/arch-arm/syscalls/__gettimeofday.S @@ -2,7 +2,7 @@ #include <private/bionic_asm.h> -ENTRY(gettimeofday) +ENTRY(__gettimeofday) mov ip, r7 .cfi_register r7, ip ldr r7, =__NR_gettimeofday @@ -13,4 +13,4 @@ ENTRY(gettimeofday) bxls lr neg r0, r0 b __set_errno_internal -END(gettimeofday) +END(__gettimeofday) diff --git a/libc/bionic/vdso.cpp b/libc/bionic/vdso.cpp index 029c1481c..f3d95ca8a 100644 --- a/libc/bionic/vdso.cpp +++ b/libc/bionic/vdso.cpp @@ -17,7 +17,7 @@ #include "private/bionic_globals.h" #include "private/bionic_vdso.h" -#if defined(__aarch64__) || defined(__x86_64__) || defined (__i386__) +#if defined(__aarch64__) || defined(__arm__) || defined(__i386__) || defined(__x86_64__) #include <limits.h> #include <link.h> @@ -28,6 +28,8 @@ #include <unistd.h> #include "private/KernelArgumentBlock.h" +#define AT_SYSINFO_EHDR 33 /* until we have new enough uapi headers... */ + int clock_gettime(int clock_id, timespec* tp) { auto vdso_clock_gettime = reinterpret_cast<decltype(&clock_gettime)>( __libc_globals->vdso[VDSO_CLOCK_GETTIME].fn); diff --git a/libc/private/bionic_vdso.h b/libc/private/bionic_vdso.h index 5400de5da..8fd0743ed 100644 --- a/libc/private/bionic_vdso.h +++ b/libc/private/bionic_vdso.h @@ -25,6 +25,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ + #ifndef _PRIVATE_BIONIC_VDSO_H #define _PRIVATE_BIONIC_VDSO_H @@ -33,7 +34,7 @@ #if defined(__aarch64__) #define VDSO_CLOCK_GETTIME_SYMBOL "__kernel_clock_gettime" #define VDSO_GETTIMEOFDAY_SYMBOL "__kernel_gettimeofday" -#elif defined(__x86_64__) || defined(__i386__) +#elif defined(__arm__) || defined(__i386__) || defined(__x86_64__) #define VDSO_CLOCK_GETTIME_SYMBOL "__vdso_clock_gettime" #define VDSO_GETTIMEOFDAY_SYMBOL "__vdso_gettimeofday" #endif |