Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
b879abc8
Commit
b879abc8
authored
Nov 10, 2017
by
Jisi Liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Supports Arm64 (aarch64) protoc artifacts
parent
0971efb1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
1 deletion
+16
-1
build-protoc.sh
protoc-artifacts/build-protoc.sh
+13
-0
build-zip.sh
protoc-artifacts/build-zip.sh
+3
-1
No files found.
protoc-artifacts/build-protoc.sh
View file @
b879abc8
...
...
@@ -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
...
...
protoc-artifacts/build-zip.sh
View file @
b879abc8
...
...
@@ -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/<TARGET>-<VERSION_NUMBER>-win32.zip
dist/<TARGET>-<VERSION_NUMBER>-osx-x86_32.zip
dist/<TARGET>-<VERSION_NUMBER>-osx-x86_64.zip
dist/<TARGET>-<VERSION_NUMBER>-linux-x86_32.zip
dist/<TARGET>-<VERSION_NUMBER>-linux-x86_64.zip
dist/<TARGET>-<VERSION_NUMBER>-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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment