diff --git a/build-binary.py b/build-binary.py index ae1976d39d1d8afd808e9b0e0fefca3930083f69..f65560635a9c69a855d426fd13a0f346134a58a2 100755 --- a/build-binary.py +++ b/build-binary.py @@ -86,7 +86,7 @@ def build_android(tool, versions): env = os.environ.copy() env['GOARCH'] = "arm" env['GOARM'] = "7" - build_android_arch(tool, versions, env, "arm-linux-androideabi", "arm", "armeabi-v7a") + build_android_arch(tool, versions, env, "armv7a-linux-androideabi", "arm", "armeabi-v7a") env = os.environ.copy() env['GOARCH'] = "arm64" @@ -102,21 +102,15 @@ def build_android(tool, versions): def build_android_arch(tool, versions, env, clang_arch, ndk_arch, abi): - toolchain = os.path.join("toolchain", ndk_arch) - if not os.path.isdir(toolchain): - toolchain_maker = os.path.join(NDK_DIR, "build", "tools", "make-standalone-toolchain.sh") - if not os.path.exists(toolchain_maker): - toolchain_maker = os.path.join(NDK_DIR, "build", "tools", "make_standalone_toolchain.py") - ex([toolchain_maker, "--arch=%s" % ndk_arch, "--install-dir=%s" % toolchain]) - - env['CC'] = "%s/bin/%s-clang" % (os.path.abspath(toolchain), clang_arch) + # TODO: Raise API level and upgrade NDK when we drop support for Android 4 + min_api = '21' if ndk_arch.endswith('64') else '16' + clang = "%s/toolchains/llvm/prebuilt/linux-x86_64/bin/%s%s-clang" % (NDK_DIR, clang_arch, min_api) + + env['CC'] = os.path.abspath(clang) env['CGO_ENABLED'] = "1" env['CGO_CFLAGS'] = "-O2" # removes -g env['GOOS'] = "android" - build_mode = "pie" - extldflags = " -extldflags=-pie" - print("Building %s for Android %s" % (tool, abi)) output_dir = get_platform_output_dir(tool, 'android') arch_dir = os.path.join(output_dir, abi) @@ -126,7 +120,7 @@ def build_android_arch(tool, versions, env, clang_arch, ndk_arch, abi): output_file = os.path.abspath(os.path.join(os.path.curdir, tool)) go_flags = ['-asmflags', '-trimpath', '-o', output_file] repo_dir = get_repo_dir(versions) - ex(['go', 'build', '-buildmode=%s' % build_mode, '-ldflags', '-w -s' + extldflags] + go_flags + + ex(['go', 'build', '-buildmode=pie', '-ldflags', '-w -s -extldflags=-pie'] + go_flags + [os.path.join('.', versions['build_path'])], env=env, cwd=repo_dir) shutil.copy(output_file, tool_path)