]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commitdiff
Fixes for building RocksJava releases on arm64v8
authorAdam Retter <adam.retter@googlemail.com>
Fri, 16 Aug 2019 23:25:11 +0000 (16:25 -0700)
committersdong <siying.d@fb.com>
Wed, 23 Oct 2019 22:22:52 +0000 (15:22 -0700)
Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/5674

Differential Revision: D16870338

fbshipit-source-id: c8dac644b1479fa734b491f3a8d50151772290f7

Makefile
java/crossbuild/docker-build-linux-centos.sh

index fbe6d2d06fff5184f795b4d709718b799200a023..59a167015251fcde0fe51168e84d8381365455be 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1662,7 +1662,7 @@ JAVA_INCLUDE = -I$(JAVA_HOME)/include/ -I$(JAVA_HOME)/include/linux
 ifeq ($(PLATFORM), OS_SOLARIS)
        ARCH := $(shell isainfo -b)
 else ifeq ($(PLATFORM), OS_OPENBSD)
-       ifneq (,$(filter $(MACHINE), amd64 arm64 sparc64 aarch64))
+       ifneq (,$(filter $(MACHINE), amd64 arm64 aarch64 sparc64))
                ARCH := 64
        else
                ARCH := 32
@@ -1671,14 +1671,11 @@ else
        ARCH := $(shell getconf LONG_BIT)
 endif
 
-ifeq (,$(findstring ppc,$(MACHINE)))
+ifeq (,$(filter $(MACHINE), ppc arm64 aarch64 sparc64))
         ROCKSDBJNILIB = librocksdbjni-linux$(ARCH).so
 else
         ROCKSDBJNILIB = librocksdbjni-linux-$(MACHINE).so
 endif
-ifneq (,$(findstring aarch64,$(MACHINE)))
-        ROCKSDBJNILIB = librocksdbjni-linux-$(MACHINE).so
-endif
 ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH)-linux$(ARCH).jar
 ROCKSDB_JAR_ALL = rocksdbjni-$(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH).jar
 ROCKSDB_JAVADOCS_JAR = rocksdbjni-$(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH)-javadoc.jar
@@ -1875,6 +1872,14 @@ rocksdbjavastaticdockerppc64le:
        mkdir -p java/target
        docker run --rm --name rocksdb_linux_ppc64le-be --attach stdin --attach stdout --attach stderr --volume `pwd`:/rocksdb-host --env DEBUG_LEVEL=$(DEBUG_LEVEL) evolvedbinary/rocksjava:centos7_ppc64le-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh
 
+rocksdbjavastaticdockerarm64v8:
+       mkdir -p java/target
+       DOCKER_LINUX_ARM64V8_CONTAINER=`docker ps -aqf name=rocksdb_linux_arm64v8-be`; \
+       if [ -z "$$DOCKER_LINUX_ARM64V8_CONTAINER" ]; then \
+               docker container create --attach stdin --attach stdout --attach stderr --volume `pwd`:/rocksdb-host --name rocksdb_linux_arm64v8-be evolvedbinary/rocksjava:centos7_arm64v8-be /rocksdb-host/java/crossbuild/docker-build-linux-centos.sh; \
+       fi
+       docker start -a rocksdb_linux_arm64v8-be
+
 rocksdbjavastaticpublish: rocksdbjavastaticrelease rocksdbjavastaticpublishcentral
 
 rocksdbjavastaticpublishdocker: rocksdbjavastaticreleasedocker rocksdbjavastaticpublishcentral
index aedcb8af78835a3e97c835cd3792c69458e8b39d..68ee610cb73f18bd792ae26f73746781ea457abd 100755 (executable)
@@ -12,17 +12,17 @@ cd /rocksdb-local
 if hash scl 2>/dev/null; then
        if scl --list | grep -q 'devtoolset-7'; then
                scl enable devtoolset-7 'make jclean clean'
-               scl enable devtoolset-7 'PORTABLE=1 make -j6 rocksdbjavastatic'
+               scl enable devtoolset-7 'PORTABLE=1 make -j2 rocksdbjavastatic'
        elif scl --list | grep -q 'devtoolset-2'; then
                scl enable devtoolset-2 'make jclean clean'
-               scl enable devtoolset-2 'PORTABLE=1 make -j6 rocksdbjavastatic'
+               scl enable devtoolset-2 'PORTABLE=1 make -j2 rocksdbjavastatic'
        else
                echo "Could not find devtoolset"
                exit 1;
        fi
 else
        make jclean clean
-        PORTABLE=1 make -j6 rocksdbjavastatic
+        PORTABLE=1 make -j2 rocksdbjavastatic
 fi
 
 cp java/target/librocksdbjni-linux*.so java/target/rocksdbjni-*-linux*.jar /rocksdb-host/java/target