diff options
-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 | ||||
-rw-r--r-- | tests/dlext_test.cpp | 4 |
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: " |