Rocksdb: rocksjava crossbuild fails

Created on 1 Oct 2019  路  6Comments  路  Source: facebook/rocksdb

$ make rocksdbjavastaticrelease
should build the JAR for macos, linux32 and linux64

It fails to build on linux32/linux64. Here are the issues:

  1. Unable to download package
    This is a workaround to download from http instead of https: https://github.com/cooldoger/rocksdb/commit/2d7772925ae7ec23787f49e0ebec7e4153ee8c20
  1. missing cmake
mkdir snappy-1.1.7/build
cd snappy-1.1.7/build && CFLAGS='' CXXFLAGS='' LDFLAGS='' cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. && make
/bin/bash: cmake: command not found
make: *** [libsnappy.a] Error 127

This is a change to install cmake: https://github.com/cooldoger/rocksdb/commit/755f3e4c13ef34a65add38ccc21dd5c4889f4f80

  1. Build hang
    linux32: cp zstd-1.4.0/lib/libzstd.a .
    linux32:   CC       jls/cache/clock_cache.o
    linux32:   CC       jls/cache/lru_cache.o
    linux32:   CC       jls/cache/sharded_cache.o
    linux32:   CC       jls/db/arena_wrapped_db_iter.o
    linux32:   CC       jls/db/c.o
    linux32:   CC       jls/db/builder.o
    linux32:   CC       jls/db/column_family.o
    linux32:   CC       jls/db/compacted_db_impl.o
    linux32:   CC       jls/db/compaction/compaction.o
    linux32:   CC       jls/db/compaction/compaction_iterator.o
    linux32:   CC       jls/db/compaction/compaction_job.o
    linux32: g++: internal compiler error: Killed (program cc1plus)
    linux32: Please submit a full bug report,
    linux32: with preprocessed source if appropriate.
    linux32: See <http://bugzilla.redhat.com/bugzilla> for instructions.
    linux32: make: *** [jls/db/column_family.o] Error 4
    linux32: make: *** Waiting for unfinished jobs....

Is it because the g++ too old?

cc. @adamretter

java-api

All 6 comments

Docker image is also missing cmake3:

$ make rocksdbjavastaticdockerx86
...
mkdir snappy-1.1.7/build
cd snappy-1.1.7/build && CFLAGS='' CXXFLAGS='' LDFLAGS='' cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. && make
-- Configuring incomplete, errors occurred!
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.1 or higher is required.  You are running version 2.8.12.2

@adamretter have you updated the image: https://github.com/evolvedbinary/docker-rocksjava/commit/1f592ae3b20ff9ddb7dd4c5c364c5e21c34038e8

@cooldoger It seems I didn't push the latest Docker images which include CMake 3. I have now pushed those for you. Let me know if you still have a problem...

The build is still failing, seems it's using older cmake version, error message:

-- Configuring incomplete, errors occurred!
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.1 or higher is required.  You are running version 2.8.12.2

make: *** [libsnappy.a] Error 1

@cooldoger I have been looking into that this afternoon and hope to have something soon...

In vagrant host, I have to link cmake3 to cmake to make it work: https://github.com/cooldoger/rocksdb/commit/755f3e4c13ef34a65add38ccc21dd5c4889f4f80

@cooldoger or you can use alternatives like in the Docker builds.

Was this page helpful?
0 / 5 - 0 ratings