OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Entry point for both build and try bots. | 6 """Entry point for both build and try bots. |
7 | 7 |
8 This script is invoked from XXX, usually without arguments | 8 This script is invoked from XXX, usually without arguments |
9 to package an SDK. It automatically determines whether | 9 to package an SDK. It automatically determines whether |
10 this SDK is for mac, win, linux. | 10 this SDK is for mac, win, linux. |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 NACLPORTS_REV = '65c71c1524a74ff8415573e5e5ef7c59ce4ac437' | 60 NACLPORTS_REV = '65c71c1524a74ff8415573e5e5ef7c59ce4ac437' |
61 | 61 |
62 GYPBUILD_DIR = 'gypbuild' | 62 GYPBUILD_DIR = 'gypbuild' |
63 | 63 |
64 options = None | 64 options = None |
65 | 65 |
66 # Map of: ToolchainName: (PackageName, SDKDir, arch). | 66 # Map of: ToolchainName: (PackageName, SDKDir, arch). |
67 TOOLCHAIN_PACKAGE_MAP = { | 67 TOOLCHAIN_PACKAGE_MAP = { |
68 'arm_glibc': ('nacl_arm_glibc', '%(platform)s_arm_glibc', 'arm'), | 68 'arm_glibc': ('nacl_arm_glibc', '%(platform)s_arm_glibc', 'arm'), |
69 'x86_glibc': ('nacl_x86_glibc', '%(platform)s_x86_glibc', 'x86'), | 69 'x86_glibc': ('nacl_x86_glibc', '%(platform)s_x86_glibc', 'x86'), |
| 70 'arm_bionic': ('nacl_arm_bionic', '%(platform)s_arm_bionic', 'arm'), |
70 'pnacl': ('pnacl_newlib', '%(platform)s_pnacl', 'pnacl') | 71 'pnacl': ('pnacl_newlib', '%(platform)s_pnacl', 'pnacl') |
71 } | 72 } |
72 | 73 |
73 | 74 |
74 def GetToolchainDirName(tcname): | 75 def GetToolchainDirName(tcname): |
75 """Return the directory name for a given toolchain""" | 76 """Return the directory name for a given toolchain""" |
76 return TOOLCHAIN_PACKAGE_MAP[tcname][1] % {'platform': getos.GetPlatform()} | 77 return TOOLCHAIN_PACKAGE_MAP[tcname][1] % {'platform': getos.GetPlatform()} |
77 | 78 |
78 | 79 |
79 def GetToolchainDir(pepperdir, tcname): | 80 def GetToolchainDir(pepperdir, tcname): |
80 """Return the full path to a given toolchain within a given sdk root""" | 81 """Return the full path to a given toolchain within a given sdk root""" |
81 return os.path.join(pepperdir, 'toolchain', GetToolchainDirName(tcname)) | 82 return os.path.join(pepperdir, 'toolchain', GetToolchainDirName(tcname)) |
82 | 83 |
83 | 84 |
84 def GetToolchainLibc(tcname): | 85 def GetToolchainLibc(tcname): |
85 if tcname == 'pnacl': | 86 if tcname == 'pnacl': |
86 return 'newlib' | 87 return 'newlib' |
87 for libc in ('glibc', 'newlib', 'host'): | 88 for libc in ('bionic', 'glibc', 'newlib', 'host'): |
88 if libc in tcname: | 89 if libc in tcname: |
89 return libc | 90 return libc |
90 | 91 |
91 | 92 |
92 def GetToolchainNaClInclude(pepperdir, tcname, arch=None): | 93 def GetToolchainNaClInclude(pepperdir, tcname, arch=None): |
93 tcpath = GetToolchainDir(pepperdir, tcname) | 94 tcpath = GetToolchainDir(pepperdir, tcname) |
94 if arch is None: | 95 if arch is None: |
95 arch = TOOLCHAIN_PACKAGE_MAP[tcname][2] | 96 arch = TOOLCHAIN_PACKAGE_MAP[tcname][2] |
96 if arch == 'x86': | 97 if arch == 'x86': |
97 return os.path.join(tcpath, 'x86_64-nacl', 'include') | 98 return os.path.join(tcpath, 'x86_64-nacl', 'include') |
(...skipping 19 matching lines...) Expand all Loading... |
117 def GetGypBuiltLib(tcname, arch): | 118 def GetGypBuiltLib(tcname, arch): |
118 if arch == 'ia32': | 119 if arch == 'ia32': |
119 lib_suffix = '32' | 120 lib_suffix = '32' |
120 elif arch == 'x64': | 121 elif arch == 'x64': |
121 lib_suffix = '64' | 122 lib_suffix = '64' |
122 elif arch == 'arm': | 123 elif arch == 'arm': |
123 lib_suffix = 'arm' | 124 lib_suffix = 'arm' |
124 else: | 125 else: |
125 lib_suffix = '' | 126 lib_suffix = '' |
126 | 127 |
127 tcdir = 'tc_' + GetToolchainLibc(tcname) | 128 if tcname == 'arm_bionic': |
| 129 tcdir = 'tc_newlib' |
| 130 else: |
| 131 tcdir = 'tc_' + GetToolchainLibc(tcname) |
128 | 132 |
129 if tcname == 'pnacl': | 133 if tcname == 'pnacl': |
130 if arch is None: | 134 if arch is None: |
131 lib_suffix = '' | 135 lib_suffix = '' |
132 tcdir = 'tc_pnacl_newlib' | 136 tcdir = 'tc_pnacl_newlib' |
133 arch = 'x64' | 137 arch = 'x64' |
134 else: | 138 else: |
135 arch = 'clang-' + arch | 139 arch = 'clang-' + arch |
136 | 140 |
137 return os.path.join(GetNinjaOutDir(arch), 'gen', tcdir, 'lib' + lib_suffix) | 141 return os.path.join(GetNinjaOutDir(arch), 'gen', tcdir, 'lib' + lib_suffix) |
(...skipping 18 matching lines...) Expand all Loading... |
156 | 160 |
157 def GetPNaClTranslatorLib(tcpath, arch): | 161 def GetPNaClTranslatorLib(tcpath, arch): |
158 if arch not in ['arm', 'x86-32', 'x86-64']: | 162 if arch not in ['arm', 'x86-32', 'x86-64']: |
159 buildbot_common.ErrorExit('Unknown architecture %s.' % arch) | 163 buildbot_common.ErrorExit('Unknown architecture %s.' % arch) |
160 return os.path.join(tcpath, 'translator', arch, 'lib') | 164 return os.path.join(tcpath, 'translator', arch, 'lib') |
161 | 165 |
162 | 166 |
163 def BuildStepDownloadToolchains(toolchains): | 167 def BuildStepDownloadToolchains(toolchains): |
164 buildbot_common.BuildStep('Running package_version.py') | 168 buildbot_common.BuildStep('Running package_version.py') |
165 args = [sys.executable, PKGVER, '--mode', 'nacl_core_sdk'] | 169 args = [sys.executable, PKGVER, '--mode', 'nacl_core_sdk'] |
| 170 if 'arm_bionic' in toolchains: |
| 171 build_platform = '%s_x86' % getos.GetPlatform() |
| 172 args.extend(['--append', os.path.join(build_platform, 'nacl_arm_bionic')]) |
166 args.extend(['sync', '--extract']) | 173 args.extend(['sync', '--extract']) |
167 buildbot_common.Run(args, cwd=NACL_DIR) | 174 buildbot_common.Run(args, cwd=NACL_DIR) |
168 | 175 |
169 | 176 |
170 def BuildStepCleanPepperDirs(pepperdir, pepperdir_old): | 177 def BuildStepCleanPepperDirs(pepperdir, pepperdir_old): |
171 buildbot_common.BuildStep('Clean Pepper Dirs') | 178 buildbot_common.BuildStep('Clean Pepper Dirs') |
172 dirs_to_remove = ( | 179 dirs_to_remove = ( |
173 pepperdir, | 180 pepperdir, |
174 pepperdir_old, | 181 pepperdir_old, |
175 os.path.join(OUT_DIR, 'arm_trusted') | 182 os.path.join(OUT_DIR, 'arm_trusted') |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 ('native_client/src/include/nacl/nacl_exception.h', 'nacl/'), | 286 ('native_client/src/include/nacl/nacl_exception.h', 'nacl/'), |
280 ('native_client/src/include/nacl/nacl_minidump.h', 'nacl/'), | 287 ('native_client/src/include/nacl/nacl_minidump.h', 'nacl/'), |
281 ('native_client/src/untrusted/irt/irt.h', ''), | 288 ('native_client/src/untrusted/irt/irt.h', ''), |
282 ('native_client/src/untrusted/irt/irt_dev.h', ''), | 289 ('native_client/src/untrusted/irt/irt_dev.h', ''), |
283 ('native_client/src/untrusted/irt/irt_extension.h', ''), | 290 ('native_client/src/untrusted/irt/irt_extension.h', ''), |
284 ('native_client/src/untrusted/nacl/nacl_dyncode.h', 'nacl/'), | 291 ('native_client/src/untrusted/nacl/nacl_dyncode.h', 'nacl/'), |
285 ('native_client/src/untrusted/nacl/nacl_startup.h', 'nacl/'), | 292 ('native_client/src/untrusted/nacl/nacl_startup.h', 'nacl/'), |
286 ('native_client/src/untrusted/valgrind/dynamic_annotations.h', 'nacl/'), | 293 ('native_client/src/untrusted/valgrind/dynamic_annotations.h', 'nacl/'), |
287 ('ppapi/nacl_irt/public/irt_ppapi.h', ''), | 294 ('ppapi/nacl_irt/public/irt_ppapi.h', ''), |
288 ], | 295 ], |
| 296 'bionic': [ |
| 297 ('ppapi/nacl_irt/public/irt_ppapi.h', ''), |
| 298 ], |
289 } | 299 } |
290 | 300 |
291 def InstallFiles(src_root, dest_root, file_list): | 301 def InstallFiles(src_root, dest_root, file_list): |
292 """Copy a set of files from src_root to dest_root according | 302 """Copy a set of files from src_root to dest_root according |
293 to the given mapping. This allows files to be copied from | 303 to the given mapping. This allows files to be copied from |
294 to a location in the destination tree that is different to the | 304 to a location in the destination tree that is different to the |
295 location in the source tree. | 305 location in the source tree. |
296 | 306 |
297 If the destination mapping ends with a '/' then the destination | 307 If the destination mapping ends with a '/' then the destination |
298 basename is inherited from the the source file. | 308 basename is inherited from the the source file. |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 | 347 |
338 | 348 |
339 def MakeNinjaRelPath(path): | 349 def MakeNinjaRelPath(path): |
340 return os.path.join(os.path.relpath(OUT_DIR, SRC_DIR), path) | 350 return os.path.join(os.path.relpath(OUT_DIR, SRC_DIR), path) |
341 | 351 |
342 | 352 |
343 # TODO(ncbray): stop building and copying libraries into the SDK that are | 353 # TODO(ncbray): stop building and copying libraries into the SDK that are |
344 # already provided by the toolchain. | 354 # already provided by the toolchain. |
345 # Mapping from libc to libraries gyp-build trusted libraries | 355 # Mapping from libc to libraries gyp-build trusted libraries |
346 TOOLCHAIN_LIBS = { | 356 TOOLCHAIN_LIBS = { |
| 357 'bionic' : [ |
| 358 'libminidump_generator.a', |
| 359 'libnacl_dyncode.a', |
| 360 'libnacl_exception.a', |
| 361 'libnacl_list_mappings.a', |
| 362 'libppapi.a', |
| 363 ], |
347 'newlib' : [ | 364 'newlib' : [ |
348 'libminidump_generator.a', | 365 'libminidump_generator.a', |
349 'libnacl.a', | 366 'libnacl.a', |
350 'libnacl_dyncode.a', | 367 'libnacl_dyncode.a', |
351 'libnacl_exception.a', | 368 'libnacl_exception.a', |
352 'libnacl_list_mappings.a', | 369 'libnacl_list_mappings.a', |
353 'libnosys.a', | 370 'libnosys.a', |
354 'libppapi.a', | 371 'libppapi.a', |
355 'libppapi_stub.a', | 372 'libppapi_stub.a', |
356 'libpthread.a', | 373 'libpthread.a', |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 InstallFiles(GetNinjaOutDir('ia32'), tools_dir, tools_files_32) | 445 InstallFiles(GetNinjaOutDir('ia32'), tools_dir, tools_files_32) |
429 InstallFiles(GetNinjaOutDir('arm'), tools_dir, arm_files) | 446 InstallFiles(GetNinjaOutDir('arm'), tools_dir, arm_files) |
430 | 447 |
431 for tc in toolchains: | 448 for tc in toolchains: |
432 if tc in ('host', 'clang-newlib'): | 449 if tc in ('host', 'clang-newlib'): |
433 continue | 450 continue |
434 elif tc == 'pnacl': | 451 elif tc == 'pnacl': |
435 xarches = (None, 'ia32', 'x64', 'arm') | 452 xarches = (None, 'ia32', 'x64', 'arm') |
436 elif tc in ('x86_glibc', 'x86_newlib'): | 453 elif tc in ('x86_glibc', 'x86_newlib'): |
437 xarches = ('ia32', 'x64') | 454 xarches = ('ia32', 'x64') |
438 elif tc == 'arm_glibc': | 455 elif tc in ('arm_glibc', 'arm_bionic'): |
439 xarches = ('arm',) | 456 xarches = ('arm',) |
440 else: | 457 else: |
441 raise AssertionError('unexpected toolchain value: %s' % tc) | 458 raise AssertionError('unexpected toolchain value: %s' % tc) |
442 | 459 |
443 for xarch in xarches: | 460 for xarch in xarches: |
444 src_dir = GetGypBuiltLib(tc, xarch) | 461 src_dir = GetGypBuiltLib(tc, xarch) |
445 dst_dir = GetOutputToolchainLib(pepperdir, tc, xarch) | 462 dst_dir = GetOutputToolchainLib(pepperdir, tc, xarch) |
446 libc = GetToolchainLibc(tc) | 463 libc = GetToolchainLibc(tc) |
447 InstallFiles(src_dir, dst_dir, TOOLCHAIN_LIBS[libc]) | 464 InstallFiles(src_dir, dst_dir, TOOLCHAIN_LIBS[libc]) |
448 | 465 |
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 buildbot_common.BuildStep('Build GoNaCl AppEngine Projects') | 862 buildbot_common.BuildStep('Build GoNaCl AppEngine Projects') |
846 cmd = ['make', 'upload', 'REVISION=%s' % chrome_revision] | 863 cmd = ['make', 'upload', 'REVISION=%s' % chrome_revision] |
847 env = dict(os.environ) | 864 env = dict(os.environ) |
848 env['NACL_SDK_ROOT'] = pepperdir | 865 env['NACL_SDK_ROOT'] = pepperdir |
849 env['NACLPORTS_NO_ANNOTATE'] = "1" | 866 env['NACLPORTS_NO_ANNOTATE'] = "1" |
850 buildbot_common.Run(cmd, env=env, cwd=GONACL_APPENGINE_SRC_DIR) | 867 buildbot_common.Run(cmd, env=env, cwd=GONACL_APPENGINE_SRC_DIR) |
851 | 868 |
852 | 869 |
853 def main(args): | 870 def main(args): |
854 parser = argparse.ArgumentParser(description=__doc__) | 871 parser = argparse.ArgumentParser(description=__doc__) |
| 872 parser.add_argument('--nacl-tree-path', |
| 873 help='Path to native client tree for bionic build.', |
| 874 dest='nacl_tree_path') |
855 parser.add_argument('--qemu', help='Add qemu for ARM.', | 875 parser.add_argument('--qemu', help='Add qemu for ARM.', |
856 action='store_true') | 876 action='store_true') |
| 877 parser.add_argument('--bionic', help='Add bionic build.', |
| 878 action='store_true') |
857 parser.add_argument('--tar', help='Force the tar step.', | 879 parser.add_argument('--tar', help='Force the tar step.', |
858 action='store_true') | 880 action='store_true') |
859 parser.add_argument('--archive', help='Force the archive step.', | 881 parser.add_argument('--archive', help='Force the archive step.', |
860 action='store_true') | 882 action='store_true') |
861 parser.add_argument('--release', help='PPAPI release version.', | 883 parser.add_argument('--release', help='PPAPI release version.', |
862 dest='release', default=None) | 884 dest='release', default=None) |
863 parser.add_argument('--build-app-engine', | 885 parser.add_argument('--build-app-engine', |
864 help='Build AppEngine demos.', action='store_true') | 886 help='Build AppEngine demos.', action='store_true') |
865 parser.add_argument('--experimental', | 887 parser.add_argument('--experimental', |
866 help='build experimental examples and libraries', action='store_true', | 888 help='build experimental examples and libraries', action='store_true', |
(...skipping 16 matching lines...) Expand all Loading... |
883 import optcomplete | 905 import optcomplete |
884 optcomplete.autocomplete(parser) | 906 optcomplete.autocomplete(parser) |
885 except ImportError: | 907 except ImportError: |
886 pass | 908 pass |
887 | 909 |
888 global options | 910 global options |
889 options = parser.parse_args(args) | 911 options = parser.parse_args(args) |
890 | 912 |
891 buildbot_common.BuildStep('build_sdk') | 913 buildbot_common.BuildStep('build_sdk') |
892 | 914 |
| 915 if options.nacl_tree_path: |
| 916 options.bionic = True |
| 917 toolchain_build = os.path.join(options.nacl_tree_path, 'toolchain_build') |
| 918 print 'WARNING: Building bionic toolchain from NaCl checkout.' |
| 919 print 'This option builds bionic from the sources currently in the' |
| 920 print 'provided NativeClient checkout, and the results instead of ' |
| 921 print 'downloading a toolchain from the builder. This may result in a' |
| 922 print 'NaCl SDK that can not run on ToT chrome.' |
| 923 print 'NOTE: To clobber you will need to run toolchain_build_bionic.py' |
| 924 print 'directly from the NativeClient checkout.' |
| 925 print '' |
| 926 response = raw_input("Type 'y' and hit enter to continue.\n") |
| 927 if response != 'y' and response != 'Y': |
| 928 print 'Aborting.' |
| 929 return 1 |
| 930 |
| 931 # Get head version of NativeClient tree |
| 932 buildbot_common.BuildStep('Build bionic toolchain.') |
| 933 buildbot_common.Run([sys.executable, 'toolchain_build_bionic.py', '-f'], |
| 934 cwd=toolchain_build) |
| 935 else: |
| 936 toolchain_build = None |
| 937 |
893 if buildbot_common.IsSDKBuilder(): | 938 if buildbot_common.IsSDKBuilder(): |
894 options.archive = True | 939 options.archive = True |
895 # TODO(binji): re-enable app_engine build when the linux builder stops | 940 # TODO(binji): re-enable app_engine build when the linux builder stops |
896 # breaking when trying to git clone from github. | 941 # breaking when trying to git clone from github. |
897 # See http://crbug.com/412969. | 942 # See http://crbug.com/412969. |
898 options.build_app_engine = False | 943 options.build_app_engine = False |
899 options.tar = True | 944 options.tar = True |
900 | 945 |
901 # NOTE: order matters here. This will be the order that is specified in the | 946 # NOTE: order matters here. This will be the order that is specified in the |
902 # Makefiles; the first toolchain will be the default. | 947 # Makefiles; the first toolchain will be the default. |
903 toolchains = ['pnacl', 'x86_glibc', 'arm_glibc', 'clang-newlib', 'host'] | 948 toolchains = ['pnacl', 'x86_glibc', 'arm_glibc', 'clang-newlib', 'host'] |
904 | 949 |
| 950 # Changes for experimental bionic builder |
| 951 if options.bionic: |
| 952 toolchains.append('arm_bionic') |
| 953 options.build_app_engine = False |
| 954 |
905 print 'Building: ' + ' '.join(toolchains) | 955 print 'Building: ' + ' '.join(toolchains) |
906 platform = getos.GetPlatform() | 956 platform = getos.GetPlatform() |
907 | 957 |
908 if options.archive and not options.tar: | 958 if options.archive and not options.tar: |
909 parser.error('Incompatible arguments with archive.') | 959 parser.error('Incompatible arguments with archive.') |
910 | 960 |
911 chrome_version = int(build_version.ChromeMajorVersion()) | 961 chrome_version = int(build_version.ChromeMajorVersion()) |
912 chrome_revision = build_version.ChromeRevision() | 962 chrome_revision = build_version.ChromeRevision() |
913 nacl_revision = build_version.NaClRevision() | 963 nacl_revision = build_version.NaClRevision() |
914 pepper_ver = str(chrome_version) | 964 pepper_ver = str(chrome_version) |
915 pepper_old = str(chrome_version - 1) | 965 pepper_old = str(chrome_version - 1) |
916 pepperdir = os.path.join(OUT_DIR, 'pepper_' + pepper_ver) | 966 pepperdir = os.path.join(OUT_DIR, 'pepper_' + pepper_ver) |
917 pepperdir_old = os.path.join(OUT_DIR, 'pepper_' + pepper_old) | 967 pepperdir_old = os.path.join(OUT_DIR, 'pepper_' + pepper_old) |
918 tarname = 'naclsdk_%s.tar.bz2' % platform | 968 if options.bionic: |
| 969 tarname = 'naclsdk_bionic.tar.bz2' |
| 970 else: |
| 971 tarname = 'naclsdk_%s.tar.bz2' % platform |
919 tarfile = os.path.join(OUT_DIR, tarname) | 972 tarfile = os.path.join(OUT_DIR, tarname) |
920 | 973 |
921 if options.release: | 974 if options.release: |
922 pepper_ver = options.release | 975 pepper_ver = options.release |
923 print 'Building PEPPER %s at %s' % (pepper_ver, chrome_revision) | 976 print 'Building PEPPER %s at %s' % (pepper_ver, chrome_revision) |
924 | 977 |
925 if 'NACL_SDK_ROOT' in os.environ: | 978 if 'NACL_SDK_ROOT' in os.environ: |
926 # We don't want the currently configured NACL_SDK_ROOT to have any effect | 979 # We don't want the currently configured NACL_SDK_ROOT to have any effect |
927 # of the build. | 980 # of the build. |
928 del os.environ['NACL_SDK_ROOT'] | 981 del os.environ['NACL_SDK_ROOT'] |
929 | 982 |
930 if platform == 'linux': | 983 if platform == 'linux': |
931 # Linux-only: make sure the debian/stable sysroot image is installed | 984 # Linux-only: make sure the debian/stable sysroot image is installed |
932 install_script = os.path.join(SRC_DIR, 'build', 'linux', 'sysroot_scripts', | 985 install_script = os.path.join(SRC_DIR, 'build', 'linux', 'sysroot_scripts', |
933 'install-sysroot.py') | 986 'install-sysroot.py') |
934 | 987 |
935 buildbot_common.Run([sys.executable, install_script, '--arch=arm']) | 988 buildbot_common.Run([sys.executable, install_script, '--arch=arm']) |
936 buildbot_common.Run([sys.executable, install_script, '--arch=i386']) | 989 buildbot_common.Run([sys.executable, install_script, '--arch=i386']) |
937 buildbot_common.Run([sys.executable, install_script, '--arch=amd64']) | 990 buildbot_common.Run([sys.executable, install_script, '--arch=amd64']) |
938 | 991 |
939 if not options.skip_toolchain: | 992 if not options.skip_toolchain: |
940 BuildStepCleanPepperDirs(pepperdir, pepperdir_old) | 993 BuildStepCleanPepperDirs(pepperdir, pepperdir_old) |
941 BuildStepMakePepperDirs(pepperdir, ['include', 'toolchain', 'tools']) | 994 BuildStepMakePepperDirs(pepperdir, ['include', 'toolchain', 'tools']) |
942 BuildStepDownloadToolchains(toolchains) | 995 BuildStepDownloadToolchains(toolchains) |
943 BuildStepUntarToolchains(pepperdir, toolchains) | 996 if options.nacl_tree_path: |
| 997 # Instead of untarring, copy the raw bionic toolchain |
| 998 not_bionic = [i for i in toolchains if i != 'arm_bionic'] |
| 999 BuildStepUntarToolchains(pepperdir, not_bionic) |
| 1000 tcname = GetToolchainDirName('arm_bionic') |
| 1001 srcdir = os.path.join(toolchain_build, 'out', tcname) |
| 1002 bionicdir = os.path.join(pepperdir, 'toolchain', tcname) |
| 1003 oshelpers.Copy(['-r', srcdir, bionicdir]) |
| 1004 else: |
| 1005 BuildStepUntarToolchains(pepperdir, toolchains) |
944 if platform == 'linux': | 1006 if platform == 'linux': |
945 buildbot_common.Move(os.path.join(pepperdir, 'toolchain', 'arm_trusted'), | 1007 buildbot_common.Move(os.path.join(pepperdir, 'toolchain', 'arm_trusted'), |
946 os.path.join(OUT_DIR, 'arm_trusted')) | 1008 os.path.join(OUT_DIR, 'arm_trusted')) |
947 | 1009 |
948 | 1010 |
949 if platform == 'linux': | 1011 if platform == 'linux': |
950 # Linux-only: Copy arm libraries from the arm_trusted package. These are | 1012 # Linux-only: Copy arm libraries from the arm_trusted package. These are |
951 # needed to be able to run sel_ldr_arm under qemu. | 1013 # needed to be able to run sel_ldr_arm under qemu. |
952 arm_libs = [ | 1014 arm_libs = [ |
953 'lib/arm-linux-gnueabihf/librt.so.1', | 1015 'lib/arm-linux-gnueabihf/librt.so.1', |
(...skipping 21 matching lines...) Expand all Loading... |
975 BuildStepUpdateUserProjects(pepperdir, toolchains, | 1037 BuildStepUpdateUserProjects(pepperdir, toolchains, |
976 options.build_experimental, True) | 1038 options.build_experimental, True) |
977 | 1039 |
978 BuildStepCopyTextFiles(pepperdir, pepper_ver, chrome_revision, nacl_revision) | 1040 BuildStepCopyTextFiles(pepperdir, pepper_ver, chrome_revision, nacl_revision) |
979 | 1041 |
980 # Ship with libraries prebuilt, so run that first. | 1042 # Ship with libraries prebuilt, so run that first. |
981 BuildStepBuildLibraries(pepperdir, 'src') | 1043 BuildStepBuildLibraries(pepperdir, 'src') |
982 GenerateNotice(pepperdir) | 1044 GenerateNotice(pepperdir) |
983 | 1045 |
984 # Verify the SDK contains what we expect. | 1046 # Verify the SDK contains what we expect. |
985 BuildStepVerifyFilelist(pepperdir) | 1047 if not options.bionic: |
| 1048 BuildStepVerifyFilelist(pepperdir) |
986 | 1049 |
987 if options.tar: | 1050 if options.tar: |
988 BuildStepTarBundle(pepper_ver, tarfile) | 1051 BuildStepTarBundle(pepper_ver, tarfile) |
989 | 1052 |
990 if platform == 'linux': | 1053 if platform == 'linux': |
991 BuildStepBuildPNaClComponent(pepper_ver, chrome_revision) | 1054 BuildStepBuildPNaClComponent(pepper_ver, chrome_revision) |
992 | 1055 |
993 if options.build_app_engine and platform == 'linux': | 1056 if options.build_app_engine and platform == 'linux': |
994 BuildStepBuildAppEngine(pepperdir, chrome_revision) | 1057 BuildStepBuildAppEngine(pepperdir, chrome_revision) |
995 | 1058 |
(...skipping 11 matching lines...) Expand all Loading... |
1007 BuildStepArchivePNaClComponent(chrome_revision) | 1070 BuildStepArchivePNaClComponent(chrome_revision) |
1008 | 1071 |
1009 return 0 | 1072 return 0 |
1010 | 1073 |
1011 | 1074 |
1012 if __name__ == '__main__': | 1075 if __name__ == '__main__': |
1013 try: | 1076 try: |
1014 sys.exit(main(sys.argv[1:])) | 1077 sys.exit(main(sys.argv[1:])) |
1015 except KeyboardInterrupt: | 1078 except KeyboardInterrupt: |
1016 buildbot_common.ErrorExit('build_sdk: interrupted') | 1079 buildbot_common.ErrorExit('build_sdk: interrupted') |
OLD | NEW |