diff options
author | Jisi Liu <jisi.liu@gmail.com> | 2017-11-09 17:16:42 -0800 |
---|---|---|
committer | Jisi Liu <jisi.liu@gmail.com> | 2017-11-09 17:16:42 -0800 |
commit | b879abc8116518821a0da6ac5b72f7b1fda34375 (patch) | |
tree | 2a1a2ca5ea2ef701b4b18a78f4501f0d5a8efb02 /protoc-artifacts/build-protoc.sh | |
parent | 0971efb16e615e7c0f9edf03df00496a2a2955c9 (diff) | |
download | protobuf-b879abc8116518821a0da6ac5b72f7b1fda34375.tar.gz protobuf-b879abc8116518821a0da6ac5b72f7b1fda34375.tar.bz2 protobuf-b879abc8116518821a0da6ac5b72f7b1fda34375.zip |
Supports Arm64 (aarch64) protoc artifacts
Diffstat (limited to 'protoc-artifacts/build-protoc.sh')
-rwxr-xr-x | protoc-artifacts/build-protoc.sh | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/protoc-artifacts/build-protoc.sh b/protoc-artifacts/build-protoc.sh index 57523a41..fe1dec24 100755 --- a/protoc-artifacts/build-protoc.sh +++ b/protoc-artifacts/build-protoc.sh @@ -6,6 +6,12 @@ # Usage: build-protoc.sh <OS> <ARCH> <TARGET> # <OS> and <ARCH> are ${os.detected.name} and ${os.detected.arch} from os-maven-plugin # <TARGET> can be "protoc" or "protoc-gen-javalite" +# +# The script now supports cross-compiling windows and linux-arm64 in linux-x86 +# environment. Required packages: +# - Windows: i686-w64-mingw32-gcc (32bit) and x86_64-w64-mingw32-gcc (64bit) +# - Arm64: g++-aarch64-linux-gnu + OS=$1 ARCH=$2 MAKE_TARGET=$3 @@ -73,6 +79,8 @@ checkArch () assertEq $format "elf32-i386" $LINENO elif [[ "$ARCH" == x86_64 ]]; then assertEq $format "elf64-x86-64" $LINENO + elif [[ "$ARCH" == aarch_64 ]]; then + assertEq $format "elf64-little" $LINENO else fail "Unsupported arch: $ARCH" fi @@ -116,6 +124,9 @@ checkDependencies () white_list="linux-gate\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux\.so\.2" elif [[ "$ARCH" == x86_64 ]]; then white_list="linux-vdso\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux-x86-64\.so\.2" + elif [[ "$ARCH" == aarch_64 ]]; then + dump_cmd='objdump -p '"$1"' | grep NEEDED' + white_list="libpthread\.so\.0\|libc\.so\.6\|ld-linux-aarch64\.so\.1" fi elif [[ "$OS" == osx ]]; then dump_cmd='otool -L '"$1"' | fgrep dylib' @@ -180,6 +191,8 @@ elif [[ "$(uname)" == Linux* ]]; then CXXFLAGS="$CXXFLAGS -m64" elif [[ "$ARCH" == x86_32 ]]; then CXXFLAGS="$CXXFLAGS -m32" + elif [[ "$ARCH" == aarch_64 ]]; then + CONFIGURE_ARGS="$CONFIGURE_ARGS --host=aarch64-linux-gnu" else fail "Unsupported arch: $ARCH" fi |