From 772a38593c85ed988f52a6b0ac66cb7bc35d0d61 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 23 May 2023 14:18:45 -0700 Subject: [PATCH 1/7] Feature: Support Linux android-arm64(aarch64) --- Makefile | 5 ++++- Makefile.common | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9ac07fa6..3825bd4d 100644 --- a/Makefile +++ b/Makefile @@ -190,7 +190,7 @@ freebsd64: $(MAKE) native OS_NAME=FreeBSD OS_ARCH=x86_64 # For ARM -native-arm: linux-arm64 linux-android-arm linux-arm linux-armv6 linux-armv7 +native-arm: linux-arm64 linux-android-arm linux-android-aarch64 linux-arm linux-armv6 linux-armv7 linux-arm: jni-header ./docker/dockcross-armv5 -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native native CROSS_PREFIX=/usr/xcc/armv5-unknown-linux-gnueabi/bin//armv5-unknown-linux-gnueabi- OS_NAME=Linux OS_ARCH=arm' @@ -204,6 +204,9 @@ linux-armv7: jni-header linux-android-arm: jni-header ./docker/dockcross-android-arm -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native native CROSS_PREFIX=/usr/arm-linux-androideabi/bin/arm-linux-androideabi- OS_NAME=Linux OS_ARCH=android-arm' +linux-android-aarch64: jni-header + ./docker/dockcross-android-arm64 -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native native OS_NAME=Linux OS_ARCH=android-aarch64' + linux-ppc64le: jni-header ./docker/dockcross-ppc64le -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native native CROSS_PREFIX=powerpc64le-unknown-linux-gnu- OS_NAME=Linux OS_ARCH=ppc64le' diff --git a/Makefile.common b/Makefile.common index 896a11c4..69bed023 100755 --- a/Makefile.common +++ b/Makefile.common @@ -50,7 +50,7 @@ endif # os=Default is meant to be generic unix/linux -known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-aarch64 Linux-ppc Linux-ppc64 Linux-ppc64le Linux-s390 Linux-s390x Mac-x86 Mac-x86_64 Mac-aarch64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc AIX-ppc64 Linux-riscv Linux-riscv64 +known_os_archs := Linux-x86 Linux-x86_64 Linux-arm Linux-armv6 Linux-armv7 Linux-android-arm Linux-android-aarch64 Linux-aarch64 Linux-ppc Linux-ppc64 Linux-ppc64le Linux-s390 Linux-s390x Mac-x86 Mac-x86_64 Mac-aarch64 FreeBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-x86 SunOS-sparc SunOS-x86_64 AIX-ppc AIX-ppc64 Linux-riscv Linux-riscv64 os_arch := $(OS_NAME)-$(OS_ARCH) IBM_JDK_7 := $(findstring IBM, $(shell $(JAVA) -version 2>&1 | grep IBM | grep "JRE 1.7")) @@ -234,6 +234,13 @@ Linux-android-arm_LINKFLAGS := -shared -static-libgcc Linux-android-arm_LIBNAME := libsnappyjava.so Linux-android-arm_SNAPPY_FLAGS:= +Linux-android-aarch64_CXX := ${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ +Linux-android-aarch64_STRIP := ${CROSS_ROOT}/bin/llvm-strip +Linux-android-aarch64_CXXFLAGS := -Ilib/inc_linux -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -std=c++11 +Linux-android-aarch64_LINKFLAGS := -shared -static-libgcc +Linux-android-aarch64_LIBNAME := libsnappyjava.so +Linux-android-aarch64_SNAPPY_FLAGS:= + Linux-aarch64_CXX := $(CROSS_PREFIX)g++ Linux-aarch64_STRIP := $(CROSS_PREFIX)strip Linux-aarch64_CXXFLAGS := -Ilib/inc_linux -I$(JAVA_HOME)/include -O2 -fPIC -fvisibility=hidden -std=c++11 From c4b2d7a06c9c15a6031ca5165aa208675d13da8b Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 23 May 2023 14:19:01 -0700 Subject: [PATCH 2/7] Add dockcross script --- docker/dockcross-android-arm64 | 278 +++++++++++++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100755 docker/dockcross-android-arm64 diff --git a/docker/dockcross-android-arm64 b/docker/dockcross-android-arm64 new file mode 100755 index 00000000..6d4bf85d --- /dev/null +++ b/docker/dockcross-android-arm64 @@ -0,0 +1,278 @@ +#!/usr/bin/env bash + +DEFAULT_DOCKCROSS_IMAGE=dockcross/android-arm64:20230421-a0eaff4 + +#------------------------------------------------------------------------------ +# Helpers +# +err() { + echo -e >&2 "ERROR: $*\n" +} + +die() { + err "$*" + exit 1 +} + +has() { + # eg. has command update + local kind=$1 + local name=$2 + + type -t $kind:$name | grep -q function +} + +# If OCI_EXE is not already set, search for a container executor (OCI stands for "Open Container Initiative") +if [ -z "$OCI_EXE" ]; then + if which podman >/dev/null 2>/dev/null; then + OCI_EXE=podman + elif which docker >/dev/null 2>/dev/null; then + OCI_EXE=docker + else + die "Cannot find a container executor. Search for docker and podman." + fi +fi + +#------------------------------------------------------------------------------ +# Command handlers +# +command:update-image() { + $OCI_EXE pull $FINAL_IMAGE +} + +help:update-image() { + echo "Pull the latest $FINAL_IMAGE ." +} + +command:update-script() { + if cmp -s <( $OCI_EXE run --rm $FINAL_IMAGE ) $0; then + echo "$0 is up to date" + else + echo -n "Updating $0 ... " + $OCI_EXE run --rm $FINAL_IMAGE > $0 && echo ok + fi +} + +help:update-script() { + echo "Update $0 from $FINAL_IMAGE ." +} + +command:update() { + command:update-image + command:update-script +} + +help:update() { + echo "Pull the latest $FINAL_IMAGE, and then update $0 from that." +} + +command:help() { + if [[ $# != 0 ]]; then + if ! has command $1; then + err \"$1\" is not an dockcross command + command:help + elif ! has help $1; then + err No help found for \"$1\" + else + help:$1 + fi + else + cat >&2 < +ENDHELP + exit 1 + fi +} + +#------------------------------------------------------------------------------ +# Option processing +# +special_update_command='' +while [[ $# != 0 ]]; do + case $1 in + + --) + shift + break + ;; + + --args|-a) + ARG_ARGS="$2" + shift 2 + ;; + + --config|-c) + ARG_CONFIG="$2" + shift 2 + ;; + + --image|-i) + ARG_IMAGE="$2" + shift 2 + ;; + update|update-image|update-script) + special_update_command=$1 + break + ;; + -*) + err Unknown option \"$1\" + command:help + exit + ;; + + *) + break + ;; + + esac +done + +# The precedence for options is: +# 1. command-line arguments +# 2. environment variables +# 3. defaults + +# Source the config file if it exists +DEFAULT_DOCKCROSS_CONFIG=~/.dockcross +FINAL_CONFIG=${ARG_CONFIG-${DOCKCROSS_CONFIG-$DEFAULT_DOCKCROSS_CONFIG}} + +[[ -f "$FINAL_CONFIG" ]] && source "$FINAL_CONFIG" + +# Set the docker image +FINAL_IMAGE=${ARG_IMAGE-${DOCKCROSS_IMAGE-$DEFAULT_DOCKCROSS_IMAGE}} + +# Handle special update command +if [ "$special_update_command" != "" ]; then + case $special_update_command in + + update) + command:update + exit $? + ;; + + update-image) + command:update-image + exit $? + ;; + + update-script) + command:update-script + exit $? + ;; + + esac +fi + +# Set the docker run extra args (if any) +FINAL_ARGS=${ARG_ARGS-${DOCKCROSS_ARGS}} + +# Bash on Ubuntu on Windows +UBUNTU_ON_WINDOWS=$([ -e /proc/version ] && grep -l Microsoft /proc/version || echo "") +# MSYS, Git Bash, etc. +MSYS=$([ -e /proc/version ] && grep -l MINGW /proc/version || echo "") +# CYGWIN +CYGWIN=$([ -e /proc/version ] && grep -l CYGWIN /proc/version || echo "") + +if [ -z "$UBUNTU_ON_WINDOWS" -a -z "$MSYS" -a "$OCI_EXE" != "podman" ]; then + USER_IDS=(-e BUILDER_UID="$( id -u )" -e BUILDER_GID="$( id -g )" -e BUILDER_USER="$( id -un )" -e BUILDER_GROUP="$( id -gn )") +fi + +# Change the PWD when working in Docker on Windows +if [ -n "$UBUNTU_ON_WINDOWS" ]; then + WSL_ROOT="/mnt/" + CFG_FILE=/etc/wsl.conf + if [ -f "$CFG_FILE" ]; then + CFG_CONTENT=$(cat $CFG_FILE | sed -r '/[^=]+=[^=]+/!d' | sed -r 's/\s+=\s/=/g') + eval "$CFG_CONTENT" + if [ -n "$root" ]; then + WSL_ROOT=$root + fi + fi + HOST_PWD=`pwd -P` + HOST_PWD=${HOST_PWD/$WSL_ROOT//} +elif [ -n "$MSYS" ]; then + HOST_PWD=$PWD + HOST_PWD=${HOST_PWD/\//} + HOST_PWD=${HOST_PWD/\//:\/} +elif [ -n "$CYGWIN" ]; then + for f in pwd readlink cygpath ; do + test -n "$(type "${f}" )" || { echo >&2 "Missing functionality (${f}) (in cygwin)." ; exit 1 ; } ; + done ; + HOST_PWD="$( cygpath -w "$( readlink -f "$( pwd ;)" ; )" ; )" ; +else + HOST_PWD=$PWD + [ -L $HOST_PWD ] && HOST_PWD=$(readlink $HOST_PWD) +fi + +# Mount Additional Volumes +if [ -z "$SSH_DIR" ]; then + SSH_DIR="$HOME/.ssh" +fi + +HOST_VOLUMES= +if [ -e "$SSH_DIR" -a -z "$MSYS" ]; then + if test -n "${CYGWIN}" ; then + HOST_VOLUMES+="-v $(cygpath -w ${SSH_DIR} ; ):/home/$(id -un)/.ssh" ; + else + HOST_VOLUMES+="-v $SSH_DIR:/home/$(id -un)/.ssh" ; + fi ; +fi + +#------------------------------------------------------------------------------ +# Now, finally, run the command in a container +# +TTY_ARGS= +tty -s && [ -z "$MSYS" ] && TTY_ARGS=-ti +CONTAINER_NAME=dockcross_$RANDOM +$OCI_EXE run $TTY_ARGS --name $CONTAINER_NAME \ + -v "$HOST_PWD":/work \ + $HOST_VOLUMES \ + "${USER_IDS[@]}" \ + $FINAL_ARGS \ + $FINAL_IMAGE "$@" +run_exit_code=$? + +# Attempt to delete container +rm_output=$($OCI_EXE rm -f $CONTAINER_NAME 2>&1) +rm_exit_code=$? +if [[ $rm_exit_code != 0 ]]; then + if [[ "$CIRCLECI" == "true" ]] && [[ $rm_output == *"Driver btrfs failed to remove"* ]]; then + : # Ignore error because of https://circleci.com/docs/docker-btrfs-error/ + else + echo "$rm_output" + exit $rm_exit_code + fi +fi + +exit $run_exit_code + +################################################################################ +# +# This image is not intended to be run manually. +# +# To create a dockcross helper script for the +# dockcross/android-arm64:20230421-a0eaff4 image, run: +# +# docker run --rm dockcross/android-arm64:20230421-a0eaff4 > dockcross-android-arm64-20230421-a0eaff4 +# chmod +x dockcross-android-arm64-20230421-a0eaff4 +# +# You may then wish to move the dockcross script to your PATH. +# +################################################################################ From 186c79151aac9e941b8e1bbfbf17c6623d9bc9eb Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 23 May 2023 14:24:05 -0700 Subject: [PATCH 3/7] Add native lib --- .../Linux/android-aarch64/libsnappyjava.so | Bin 0 -> 65272 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 src/main/resources/org/xerial/snappy/native/Linux/android-aarch64/libsnappyjava.so diff --git a/src/main/resources/org/xerial/snappy/native/Linux/android-aarch64/libsnappyjava.so b/src/main/resources/org/xerial/snappy/native/Linux/android-aarch64/libsnappyjava.so new file mode 100755 index 0000000000000000000000000000000000000000..9765a131dd44465847d27e942097120680440d67 GIT binary patch literal 65272 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 literal 0 HcmV?d00001 From 0f2f05ba8eb88d178ed1e8a1a588b3419e58cd51 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 23 May 2023 14:40:43 -0700 Subject: [PATCH 4/7] Add --no-cache for CI --- Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Makefile b/Makefile index 3825bd4d..f9c190ac 100644 --- a/Makefile +++ b/Makefile @@ -165,7 +165,12 @@ $(TARGET)/$(snappy-jar-version).jar: test: $(NATIVE_DLL) $(SBT) test +ifdef CI +# Do not cache docker images in CI to avoid no space left error +DOCKER_RUN_OPTS:=--rm --no-cache +else DOCKER_RUN_OPTS:=--rm +endif win32: jni-header ./docker/dockcross-windows-x86 -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native snappy-header native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86 SNAPPY_CMAKE_OPTS="-DHAVE_SYS_UIO_H=0"' From e860270536d5137c775c98df65f1b235ae22b94e Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 23 May 2023 14:46:52 -0700 Subject: [PATCH 5/7] Revert "Add --no-cache for CI" This reverts commit 0f2f05ba8eb88d178ed1e8a1a588b3419e58cd51. --- Makefile | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Makefile b/Makefile index f9c190ac..3825bd4d 100644 --- a/Makefile +++ b/Makefile @@ -165,12 +165,7 @@ $(TARGET)/$(snappy-jar-version).jar: test: $(NATIVE_DLL) $(SBT) test -ifdef CI -# Do not cache docker images in CI to avoid no space left error -DOCKER_RUN_OPTS:=--rm --no-cache -else DOCKER_RUN_OPTS:=--rm -endif win32: jni-header ./docker/dockcross-windows-x86 -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native snappy-header native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86 SNAPPY_CMAKE_OPTS="-DHAVE_SYS_UIO_H=0"' From 980ee692b89cd0f07d514132e6c719bad1b48078 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 23 May 2023 14:52:52 -0700 Subject: [PATCH 6/7] Add docker clean process --- Makefile | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3825bd4d..2d2ed082 100644 --- a/Makefile +++ b/Makefile @@ -149,7 +149,17 @@ native: jni-header snappy-header $(NATIVE_DLL) native-nocmake: jni-header $(NATIVE_DLL) snappy: native $(TARGET)/$(snappy-jar-version).jar -native-all: native native-arm mac64 win32 win64 linux32 linux64 linux-ppc64le linux-riscv64 linux-s390x +native-all: native native-arm clean-docker mac64 win32 win64 linux32 linux64 linux-ppc64le linux-riscv64 linux-s390x + +ifdef CI +# Clean docker images within CI to avoid no space left error +DOCKER_POST_PROCESS:=docker system prune --all --force --volumes +else +DOCKER_POST_PROCESS:= +endif + +clean-docker: + $(DOCKER_POST_PROCESS) $(NATIVE_DLL): $(SNAPPY_OUT)/$(LIBNAME) @mkdir -p $(@D) @@ -167,6 +177,7 @@ test: $(NATIVE_DLL) DOCKER_RUN_OPTS:=--rm + win32: jni-header ./docker/dockcross-windows-x86 -a $(DOCKER_RUN_OPTS) bash -c 'make clean-native snappy-header native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86 SNAPPY_CMAKE_OPTS="-DHAVE_SYS_UIO_H=0"' From f98ac3892ab896bec3d4c4fc794f330c497aad33 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 22:04:14 +0000 Subject: [PATCH 7/7] Update native libraries --- .../snappy/native/Windows/x86/snappyjava.dll | Bin 773120 -> 773120 bytes .../native/Windows/x86_64/snappyjava.dll | Bin 799744 -> 799744 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/org/xerial/snappy/native/Windows/x86/snappyjava.dll b/src/main/resources/org/xerial/snappy/native/Windows/x86/snappyjava.dll index 74f1e8a1a55ac9afd93e575665c8372adf2482bb..840d7d817292cf4baa08cd024495336534ee945c 100755 GIT binary patch delta 57 zcmV-90LK4-m@j~sFOb**RHuR3h1vmy+5&~z1BKcIh1vy$+6IN%2Zh=Qh1v;)+6uMW P3o2UzYd5zBTnqYd24ESC delta 57 zcmV-90LK4-m@j~sFOb**>W+chh1vmy+5&~z1BKcIh1vy$+6IN%2Zh=Qh1v;)+6uMW P3o2Uz0Ux&pTnqYd8Sxp1 diff --git a/src/main/resources/org/xerial/snappy/native/Windows/x86_64/snappyjava.dll b/src/main/resources/org/xerial/snappy/native/Windows/x86_64/snappyjava.dll index d7f75b40e4ea32e0e87e6ebb703d9a2477cb2384..cb6c7703cea901d0e649757a2b43d14bf0d5cdc8 100755 GIT binary patch delta 60 zcmV-C0K@-)=rDljFp$^+MH_+Ih1vmy+5&~z1BKcIh1vy$+6IN%2Zh=Qh1v;)+6sl* S3$@w|DggqNH@5}?4Eix#XBsvD delta 60 zcmV-C0K@-)=rDljFp$^+)&harh1vmy+5&~z1BKcIh1vy$+6IN%2Zh=Qh1v;)+6sl* S3$@w|Dggo|AGZbq4Eix}NE#;q