From 97dd175a917fcdf1a0e0421659498a974f3a464a Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Thu, 2 Nov 2017 14:16:22 -0700 Subject: Update version number to 3.5.0 --- protoc-artifacts/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'protoc-artifacts') diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml index c6f5a77f..742fab93 100644 --- a/protoc-artifacts/pom.xml +++ b/protoc-artifacts/pom.xml @@ -10,7 +10,7 @@ com.google.protobuf protoc - 3.4.1 + 3.5.0 pom Protobuf Compiler -- cgit v1.2.3 From b879abc8116518821a0da6ac5b72f7b1fda34375 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Thu, 9 Nov 2017 17:16:42 -0800 Subject: Supports Arm64 (aarch64) protoc artifacts --- protoc-artifacts/build-protoc.sh | 13 +++++++++++++ protoc-artifacts/build-zip.sh | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'protoc-artifacts') 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 # and are ${os.detected.name} and ${os.detected.arch} from os-maven-plugin # 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 diff --git a/protoc-artifacts/build-zip.sh b/protoc-artifacts/build-zip.sh index a124ed7c..0427e616 100755 --- a/protoc-artifacts/build-zip.sh +++ b/protoc-artifacts/build-zip.sh @@ -13,12 +13,13 @@ Example: This script will download pre-built protoc or protoc plugin binaries from maven repository and create .zip packages suitable to be included in the github release page. If the target is protoc, well-known type .proto files will also be -included. Each invocation will create 5 zip packages: +included. Each invocation will create 6 zip packages: dist/--win32.zip dist/--osx-x86_32.zip dist/--osx-x86_64.zip dist/--linux-x86_32.zip dist/--linux-x86_64.zip + dist/--linux-aarch64.zip EOF exit 1 fi @@ -33,6 +34,7 @@ declare -a FILE_NAMES=( \ osx-x86_64.zip osx-x86_64.exe \ linux-x86_32.zip linux-x86_32.exe \ linux-x86_64.zip linux-x86_64.exe \ + linux-aarch64.zip linux-aarch64.exe \ ) # List of all well-known types to be included. -- cgit v1.2.3 From 5eb717c3006ad7da9aa6e49d40328a3963ad22a3 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Thu, 9 Nov 2017 17:22:03 -0800 Subject: Fix arm64 name --- protoc-artifacts/build-zip.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'protoc-artifacts') diff --git a/protoc-artifacts/build-zip.sh b/protoc-artifacts/build-zip.sh index 0427e616..f08e2758 100755 --- a/protoc-artifacts/build-zip.sh +++ b/protoc-artifacts/build-zip.sh @@ -19,7 +19,7 @@ included. Each invocation will create 6 zip packages: dist/--osx-x86_64.zip dist/--linux-x86_32.zip dist/--linux-x86_64.zip - dist/--linux-aarch64.zip + dist/--linux-aarch_64.zip EOF exit 1 fi @@ -34,7 +34,7 @@ declare -a FILE_NAMES=( \ osx-x86_64.zip osx-x86_64.exe \ linux-x86_32.zip linux-x86_32.exe \ linux-x86_64.zip linux-x86_64.exe \ - linux-aarch64.zip linux-aarch64.exe \ + linux-aarch_64.zip linux-aarch_64.exe \ ) # List of all well-known types to be included. -- cgit v1.2.3 From 0cd2ad11b8a114c3767aafe9912c09c89bfd0f3e Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Mon, 13 Nov 2017 12:29:06 -0800 Subject: Update protoc-artfacts --- protoc-artifacts/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'protoc-artifacts') diff --git a/protoc-artifacts/README.md b/protoc-artifacts/README.md index 17eb77f8..fc8ef586 100644 --- a/protoc-artifacts/README.md +++ b/protoc-artifacts/README.md @@ -70,9 +70,9 @@ support. DO NOT close the staging repository until you have done the deployment for all platforms. Currently the following platforms are supported: - Linux (x86_32 and x86_64) - Windows (x86_32 and x86_64) with - - Cygwin64 with MinGW compilers (x86_64) - - MSYS with MinGW32 (x86_32) - - Cross compile in Linux with MinGW-w64 (x86_32, x86_64) + - Cygwin64 with MinGW compilers (x86_64) + - MSYS with MinGW32 (x86_32) + - Cross compile in Linux with MinGW-w64 (x86_32, x86_64) - MacOSX (x86_32 and x86_64) As for MSYS2/MinGW64 for Windows: protoc will build, but it insists on @@ -174,8 +174,9 @@ stored: ### Tested build environments We have successfully built artifacts on the following environments: - Linux x86_32 and x86_64: - - Centos 6.6 (within Docker 1.6.1) - - Ubuntu 14.04.2 64-bit + - Centos 6.6 (within Docker 1.6.1) + - Ubuntu 14.04.2 64-bit +- Linux aarch_64: Cross compiled with `g++-aarch64-linux-gnu` on Ubuntu 14.04.2 64-bit - Windows x86_32: MSYS with ``mingw32-gcc-g++ 4.8.1-4`` on Windows 7 64-bit - Windows x86_32: Cross compile with ``i686-w64-mingw32-g++ 4.8.2`` on Ubuntu 14.04.2 64-bit - Windows x86_64: Cygwin64 with ``mingw64-x86_64-gcc-g++ 4.8.3-1`` on Windows 7 64-bit -- cgit v1.2.3