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
7 years ago
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
...
...
This diff is collapsed.
Click to expand it.
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.
...
...
This diff is collapsed.
Click to expand it.
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