diff options
Diffstat (limited to 'ports/sysdeps/unix/sysv/linux/aarch64')
7 files changed, 36 insertions, 78 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/ports/sysdeps/unix/sysv/linux/aarch64/bits/mman.h index 67c563ce2b..770607b83e 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/bits/mman.h +++ b/ports/sysdeps/unix/sysv/linux/aarch64/bits/mman.h @@ -25,38 +25,8 @@ /* The following definitions basically come from the kernel headers. But the kernel header is not namespace clean. */ - -/* Protections are chosen from these bits, OR'd together. The - implementation does not necessarily support PROT_EXEC or PROT_WRITE - without PROT_READ. The only guarantees are that no writing will be - allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ - -#define PROT_READ 0x1 /* Page can be read. */ -#define PROT_WRITE 0x2 /* Page can be written. */ -#define PROT_EXEC 0x4 /* Page can be executed. */ -#define PROT_NONE 0x0 /* Page can not be accessed. */ -#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of - growsdown vma (mprotect only). */ -#define PROT_GROWSUP 0x02000000 /* Extend change to start of - growsup vma (mprotect only). */ - -/* Sharing types (must choose one and only one of these). */ -#define MAP_SHARED 0x01 /* Share changes. */ -#define MAP_PRIVATE 0x02 /* Changes are private. */ -#ifdef __USE_MISC -# define MAP_TYPE 0x0f /* Mask for type of mapping. */ -#endif - -/* Other flags. */ -#define MAP_FIXED 0x10 /* Interpret addr exactly. */ -#ifdef __USE_MISC -# define MAP_FILE 0 -# define MAP_ANONYMOUS 0x20 /* Don't use a file. */ -# define MAP_ANON MAP_ANONYMOUS -#endif - -#ifdef __USE_MISC /* These are Linux-specific. */ +#ifdef __USE_MISC # define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */ # define MAP_DENYWRITE 0x00800 /* ETXTBSY */ # define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */ @@ -68,47 +38,7 @@ # define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ #endif -/* Flags to `msync'. */ -#define MS_ASYNC 1 /* Sync memory asynchronously. */ -#define MS_SYNC 4 /* Synchronous memory sync. */ -#define MS_INVALIDATE 2 /* Invalidate the caches. */ - -/* Flags for `mlockall'. */ -#define MCL_CURRENT 1 /* Lock all currently mapped pages. */ -#define MCL_FUTURE 2 /* Lock all additions to address - space. */ -/* Flags for `mremap'. */ -#ifdef __USE_GNU -# define MREMAP_MAYMOVE 1 -# define MREMAP_FIXED 2 -#endif - -/* Advice to `madvise'. */ -#ifdef __USE_BSD -# define MADV_NORMAL 0 /* No further special treatment. */ -# define MADV_RANDOM 1 /* Expect random page references. */ -# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define MADV_WILLNEED 3 /* Will need these pages. */ -# define MADV_DONTNEED 4 /* Don't need these pages. */ -# define MADV_REMOVE 9 /* Remove these pages and resources. */ -# define MADV_DONTFORK 10 /* Do not inherit across fork. */ -# define MADV_DOFORK 11 /* Do inherit across fork. */ -# define MADV_MERGEABLE 12 /* KSM may merge identical pages. */ -# define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages. */ -# define MADV_HUGEPAGE 14 /* Worth backing with hugepages. */ -# define MADV_NOHUGEPAGE 15 /* Not worth backing with hugepages. */ -# define MADV_DONTDUMP 16 /* Explicity exclude from the core dump, - overrides the coredump filter bits. */ -# define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag. */ -# define MADV_HWPOISON 100 /* Poison a page for testing. */ -#endif -/* The POSIX people had to invent similar names for the same things. */ -#ifdef __USE_XOPEN2K -# define POSIX_MADV_NORMAL 0 /* No further special treatment. */ -# define POSIX_MADV_RANDOM 1 /* Expect random page references. */ -# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */ -# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ -# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ -#endif +/* Include generic Linux declarations. */ +#include <bits/mman-linux.h> diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure b/ports/sysdeps/unix/sysv/linux/aarch64/configure index 5a22126fe8..6b2608acd7 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/configure +++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure @@ -1,3 +1,17 @@ # This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. arch_minimum_kernel=3.7.0 + +test -n "$libc_cv_slibdir" || +case "$prefix" in + /usr | /usr/) + libc_cv_slibdir="/lib64" + libc_cv_rtlddir="/lib" + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32bit and 64bit libraries + libc_cv_localedir='${exec_prefix}/lib/locale' + fi + ;; +esac diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in index d1995d486d..b090702134 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in +++ b/ports/sysdeps/unix/sysv/linux/aarch64/configure.in @@ -2,3 +2,16 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/unix/sysv/linux/aarch64. arch_minimum_kernel=3.7.0 + +test -n "$libc_cv_slibdir" || +case "$prefix" in + /usr | /usr/) + libc_cv_slibdir="/lib64" + libc_cv_rtlddir="/lib" + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32bit and 64bit libraries + libc_cv_localedir='${exec_prefix}/lib/locale' + fi + ;; +esac diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c index 1da284dec8..4d1ec3b101 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c +++ b/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c @@ -22,7 +22,6 @@ #undef __gettimeofday #include <bits/libc-vdso.h> -#include <bp-checks.h> /* Get the current time of day and timezone information, putting it into *tv and *tz. If tz is null, *tz is not filled. @@ -32,7 +31,7 @@ __gettimeofday (tv, tz) struct timeval *tv; struct timezone *tz; { - return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz)); + return INLINE_VSYSCALL (gettimeofday, 2, tv, tz); } libc_hidden_def (__gettimeofday) weak_alias (__gettimeofday, gettimeofday) diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist index f83e8806a7..b04a761fed 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist +++ b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist @@ -2077,3 +2077,6 @@ GLIBC_2.17 xencrypt F xprt_register F xprt_unregister F +GLIBC_2.18 + GLIBC_2.18 A + __cxa_thread_atexit_impl F diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist index 031c70e8ab..696158aef7 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist +++ b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist @@ -73,7 +73,6 @@ GLIBC_2.17 pause F pread F pread64 F - pthread_atfork F pthread_attr_destroy F pthread_attr_getaffinity_np F pthread_attr_getdetachstate F diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c index 74b6675647..dbaa2246b7 100644 --- a/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c +++ b/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c @@ -51,8 +51,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) } result = INLINE_SYSCALL (rt_sigaction, 4, sig, - act ? __ptrvalue (&kact) : NULL, - oact ? __ptrvalue (&koact) : NULL, _NSIG / 8); + act ? &kact : NULL, + oact ? &koact : NULL, _NSIG / 8); if (result >= 0 || errno != ENOSYS) { if (oact && result >= 0) |