Add arm64 build support

This commit is contained in:
HAMIDx9 2017-08-08 06:59:45 +00:00 committed by Cheng Zhao
parent 0c93e4b8d7
commit cd42133651
5 changed files with 1029 additions and 182 deletions

View file

@ -34,6 +34,14 @@ LINUX_DEPS_ARM = [
'gcc-4.8-multilib-arm-linux-gnueabihf', 'gcc-4.8-multilib-arm-linux-gnueabihf',
] ]
LINUX_DEPS_ARM64 = [
'binutils-aarch64-linux-gnu',
'libc6-dev-arm64-cross',
'linux-libc-dev-arm64-cross',
'g++-4.8-aarch64-linux-gnu',
'gcc-4.8-aarch64-linux-gnu',
'gcc-aarch64-linux-gnu',
]
def main(): def main():
os.environ['CI'] = '1' os.environ['CI'] = '1'
@ -56,6 +64,8 @@ def main():
deps = LINUX_DEPS deps = LINUX_DEPS
if target_arch == 'arm': if target_arch == 'arm':
deps += LINUX_DEPS_ARM deps += LINUX_DEPS_ARM
elif target_arch == 'arm64':
deps += LINUX_DEPS_ARM64
else: else:
deps += LINUX_DEPS_NO_ARM deps += LINUX_DEPS_NO_ARM
execute(['sudo', 'apt-get', 'install'] + deps) execute(['sudo', 'apt-get', 'install'] + deps)

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
export TARGET_ARCH=arm64
script/cibuild-linux

View file

@ -208,6 +208,8 @@ def strip_binaries():
def strip_binary(binary_path): def strip_binary(binary_path):
if get_target_arch() == 'arm': if get_target_arch() == 'arm':
strip = 'arm-linux-gnueabihf-strip' strip = 'arm-linux-gnueabihf-strip'
elif get_target_arch() == 'arm64':
strip = 'aarch64-linux-gnu-strip'
else: else:
strip = 'strip' strip = 'strip'
execute([strip, binary_path]) execute([strip, binary_path])

View file

@ -140,7 +140,7 @@
}], }],
# Setup sysroot environment. # Setup sysroot environment.
['OS=="linux" and target_arch in ["arm", "ia32", "x64"]', { ['OS=="linux" and target_arch in ["arm", "ia32", "x64", "arm64"]', {
'target_defaults': { 'target_defaults': {
'target_conditions': [ 'target_conditions': [
['_toolset=="target"', { ['_toolset=="target"', {
@ -259,6 +259,23 @@
], ],
}], }],
], ],
}], # target_arch=="arm64" and _toolset=="target"
['target_arch=="arm64" and _toolset=="target"', {
'conditions': [
['clang==0', {
'cflags_cc': [
'-Wno-abi',
],
}],
['clang==1 and arm_arch!=""', {
'cflags': [
'-target aarch64-linux-gnu',
],
'ldflags': [
'-target aarch64-linux-gnu',
],
}],
],
}], # target_arch=="arm" and _toolset=="target" }], # target_arch=="arm" and _toolset=="target"
], ],
}, },

File diff suppressed because it is too large Load diff