From 26e75e88ea790d8efd0603f0ac9de0a6baa075ed Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Wed, 8 Mar 2017 22:29:34 +0100 Subject: [PATCH] Update README.md --- README.md | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index ac0a9960..c5c87479 100644 --- a/README.md +++ b/README.md @@ -99,33 +99,23 @@ Resources Common porting problems ======================= -* The Android bionic libc does not have iconv and gettext/libintl functionality built in. A package from the NDK, libandroid-support, contains these and may be used by all packages. +* The Android bionic libc does not have iconv and gettext/libintl functionality built in. A `libandroid-support` package contains these and may be used by all packages. * "error: z: no archive symbol table (run ranlib)" usually means that the build machines libz is used instead of the one for cross compilation, due to the builder library -L path being setup incorrectly -* rindex(3) is defined in <strings.h> but does not exist in NDK, but strrchr(3) from <string.h> is preferred anyway +* rindex(3) does not exist, but strrchr(3) is preferred anyway. * <sys/termios.h> does not exist, but <termios.h> is the standard location. * <sys/fcntl.h> does not exist, but <fcntl.h> is the standard location. -* glob(3) system function (glob.h) - not in bionic, but use the `libandroid-glob` package +* <sys/timeb.h> does not exist (removed in POSIX 2008), but ftime(3) can be replaced with gettimeofday(2). -* [Cmake and cross compiling](http://www.cmake.org/Wiki/CMake_Cross_Compiling). - `CMAKE_FIND_ROOT_PATH=$TERMUX_PREFIX` to search there. - `CMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY` and `CMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY` - for only searching there and don't fall back to build machines +* <glob.h> does not exist, but is available through the `libandroid-glob` package. -* Android is removing sys/timeb.h because it was removed in POSIX 2008, but ftime(3) can be replaced with gettimeofday(2) +* SYSV shared memory is not supported by the kernel. A `libandroid-shmem` package, which emulates SYSV shared memory on top of the [ashmem](http://elinux.org/Android_Kernel_Features#ashmem) shared memory system, is available. Use it with `LDFLAGS+=" -landroid-shmem`. -* mempcpy(3) is a GNU extension. We have added it to <string.h> provided TERMUX_EXPOSE_MEMPCPY is defined, - so use something like CFLAGS+=" -DTERMUX_EXPOSE_MEMPCPY=1" for packages expecting that function to exist. - -* Android uses a customized version of shared memory managemnt known as ashmem. libandroid-shmem wraps SYSV shared - memory calls to standard ashmem operations. Use it with `LDFLAGS+=" -landroid-shmem`. - -* SYSV semaphores (semget(2), semop(2) and others) aren't available. - Use unnamed POSIX semaphores instead (named semaphores are unimplemented). +* SYSV semaphores is not supported by the kernel. Use unnamed POSIX semaphores instead (named semaphores are unimplemented). dlopen() and RTLD_* flags ================================= -- 2.11.0