Build environment on Ubuntu 16.10
=================================
-Packages are normally built using Ubuntu 16.10. Perform the following steps to configure a Ubuntu 16.10 installation:
+Packages are built using Ubuntu 16.10. Perform the following steps to configure a Ubuntu 16.10 installation:
- Run `scripts/setup-ubuntu.sh` to install required packages and setup the `/data/` folder.
On other Linux distributions than Ubuntu 16.10 (or on other platforms than Linux) the best course
of action is to setup a Docker container for building packages by executing:
- ./scripts/run-docker.sh
+ ./scripts/run-docker.sh # On Linux and macOS.
+ .\scripts\run-docker.ps1 # On Windows.
This will setup a container (from an image created by [scripts/Dockerfile](scripts/Dockerfile))
suitable for building packages.
* scripts/check-pie.sh: Used for verifying that all binaries are using PIE, which is required for Android 5+.
-* scripts/detect-hardlinks.sh: Used for finding if any packages uses hardlinks, which does not work on Android M.
-
* scripts/check-versions.sh: used for checking for package updates.
* scripts/list-packages.sh: used for listing all packages with a one-line summary.
* 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. Standard shm and semaphore libc
- wrappers (semget(2), shmat(2) and others) aren't available. Direct syscalls can be used with
- `CFLAGS+=" -DTERMUX_SHMEM_STUBS=1 -DTERMUX_SEMOPS_STUBS=1"`.
+* 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).
dlopen() and RTLD_* flags
=================================