aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/SYSCALLS.TXT8
-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.cpp4
-rw-r--r--libc/private/bionic_vdso.h3
-rw-r--r--tests/dlext_test.cpp4
6 files changed, 16 insertions, 11 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
diff --git a/tests/dlext_test.cpp b/tests/dlext_test.cpp
index a0e83fe86..c3230e75e 100644
--- a/tests/dlext_test.cpp
+++ b/tests/dlext_test.cpp
@@ -628,7 +628,9 @@ TEST(dlext, ns_smoke) {
ASSERT_FALSE(android_init_namespaces(path.c_str(), nullptr));
ASSERT_STREQ("android_init_namespaces failed: error initializing public namespace: "
- "\"libnstest_public.so\" was not found in the default namespace", dlerror());
+ "a library with soname \"libnstest_public.so\" was not found in the "
+ "default namespace",
+ dlerror());
ASSERT_FALSE(android_init_namespaces("", nullptr));
ASSERT_STREQ("android_init_namespaces failed: error initializing public namespace: "