OLD | NEW |
---|---|
1 # -*- python -*- | 1 # -*- python -*- |
2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2011 The Native Client 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 import atexit | 6 import atexit |
7 import glob | 7 import glob |
8 import os | 8 import os |
9 import platform | 9 import platform |
10 import stat | 10 import stat |
(...skipping 1892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1903 def CheckPlatformPreconditions(): | 1903 def CheckPlatformPreconditions(): |
1904 "Check and fail fast if platform-specific preconditions are unmet." | 1904 "Check and fail fast if platform-specific preconditions are unmet." |
1905 | 1905 |
1906 if base_env.Bit('target_arm') and (base_env.Bit('build_x86_32') or | 1906 if base_env.Bit('target_arm') and (base_env.Bit('build_x86_32') or |
1907 base_env.Bit('build_x86_64')): | 1907 base_env.Bit('build_x86_64')): |
1908 assert os.getenv('NACL_SDK_CC'), ( | 1908 assert os.getenv('NACL_SDK_CC'), ( |
1909 "NACL_SDK_CC undefined. " | 1909 "NACL_SDK_CC undefined. " |
1910 "Source tools/llvm/setup_arm_untrusted_toolchain.sh.") | 1910 "Source tools/llvm/setup_arm_untrusted_toolchain.sh.") |
1911 | 1911 |
1912 # ---------------------------------------------------------- | 1912 # ---------------------------------------------------------- |
1913 pre_base_env.Append( | |
1914 CPPDEFINES = [ | |
1915 ['NACL_BLOCK_SHIFT', '5'], | |
1916 ['NACL_BLOCK_SIZE', '32'], | |
1917 ['NACL_BUILD_ARCH', '${BUILD_ARCHITECTURE}' ], | |
1918 ['NACL_BUILD_SUBARCH', '${BUILD_SUBARCH}' ], | |
1919 ], | |
1920 ) | |
1921 | |
1913 base_env = pre_base_env.Clone() | 1922 base_env = pre_base_env.Clone() |
1914 base_env.Append( | 1923 base_env.Append( |
1915 BUILD_SUBTYPE = '', | 1924 BUILD_SUBTYPE = '', |
1916 CPPDEFINES = [ | 1925 CPPDEFINES = [ |
1917 ['NACL_BLOCK_SHIFT', '5'], | |
1918 ['NACL_BLOCK_SIZE', '32'], | |
1919 ['NACL_BUILD_ARCH', '${BUILD_ARCHITECTURE}' ], | |
1920 ['NACL_BUILD_SUBARCH', '${BUILD_SUBARCH}' ], | |
1921 ['NACL_TARGET_ARCH', '${TARGET_ARCHITECTURE}' ], | 1926 ['NACL_TARGET_ARCH', '${TARGET_ARCHITECTURE}' ], |
1922 ['NACL_TARGET_SUBARCH', '${TARGET_SUBARCH}' ], | 1927 ['NACL_TARGET_SUBARCH', '${TARGET_SUBARCH}' ], |
1923 ], | 1928 ], |
1924 CPPPATH = ['${SOURCE_ROOT}'], | 1929 CPPPATH = ['${SOURCE_ROOT}'], |
1925 | 1930 |
1926 EXTRA_CFLAGS = [], | 1931 EXTRA_CFLAGS = [], |
1927 EXTRA_CCFLAGS = [], | 1932 EXTRA_CCFLAGS = [], |
1928 EXTRA_CXXFLAGS = [], | 1933 EXTRA_CXXFLAGS = [], |
1929 EXTRA_LIBS = [], | 1934 EXTRA_LIBS = [], |
1930 CFLAGS = ['${EXTRA_CFLAGS}'], | 1935 CFLAGS = ['${EXTRA_CFLAGS}'], |
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2353 # Do this before the site_scons/site_tools/naclsdk.py stuff to pass it along. | 2358 # Do this before the site_scons/site_tools/naclsdk.py stuff to pass it along. |
2354 pre_base_env.Append( | 2359 pre_base_env.Append( |
2355 PNACL_BCLDFLAGS = ARGUMENTS.get('pnacl_bcldflags', '').split(':')) | 2360 PNACL_BCLDFLAGS = ARGUMENTS.get('pnacl_bcldflags', '').split(':')) |
2356 | 2361 |
2357 # ---------------------------------------------------------- | 2362 # ---------------------------------------------------------- |
2358 # The nacl_env is used to build native_client modules | 2363 # The nacl_env is used to build native_client modules |
2359 # using a special tool chain which produces platform | 2364 # using a special tool chain which produces platform |
2360 # independent binaries | 2365 # independent binaries |
2361 # NOTE: this loads stuff from: site_scons/site_tools/naclsdk.py | 2366 # NOTE: this loads stuff from: site_scons/site_tools/naclsdk.py |
2362 # ---------------------------------------------------------- | 2367 # ---------------------------------------------------------- |
2363 nacl_env = pre_base_env.Clone( | 2368 |
2369 nacl_common_env = pre_base_env.Clone( | |
2364 tools = ['naclsdk'], | 2370 tools = ['naclsdk'], |
2365 BUILD_TYPE = 'nacl', | |
2366 BUILD_TYPE_DESCRIPTION = 'NaCl module build', | |
2367 NACL_BUILD_FAMILY = 'UNTRUSTED', | 2371 NACL_BUILD_FAMILY = 'UNTRUSTED', |
2368 | 2372 |
2373 ARFLAGS = 'rc', | |
2374 | |
2375 # ${SOURCE_ROOT} for #include <ppapi/...> | |
2376 # ${SOURCE_ROOT}/gpu for #include <GLES2/...>" | |
Nick Bray
2011/06/28 21:53:35
Typo
| |
2377 CPPPATH = ['${SOURCE_ROOT}', '${SOURCE_ROOT}/gpu'], | |
2378 | |
2369 EXTRA_CFLAGS = [], | 2379 EXTRA_CFLAGS = [], |
2370 EXTRA_CCFLAGS = ARGUMENTS.get('nacl_ccflags', '').split(':'), | 2380 EXTRA_CCFLAGS = ARGUMENTS.get('nacl_ccflags', '').split(':'), |
2371 EXTRA_CXXFLAGS = [], | 2381 EXTRA_CXXFLAGS = [], |
2372 EXTRA_LIBS = [], | 2382 EXTRA_LIBS = [], |
2373 EXTRA_LINKFLAGS = ARGUMENTS.get('nacl_linkflags', '').split(':'), | 2383 EXTRA_LINKFLAGS = ARGUMENTS.get('nacl_linkflags', '').split(':'), |
2374 | 2384 |
2375 # This is the address at which a user executable is expected to | |
2376 # place its data segment in order to be compatible with the | |
2377 # integrated runtime (IRT) library. | |
2378 IRT_DATA_REGION_START = '0x10000000', | |
2379 # Load addresses of the IRT's code and data segments. | |
2380 IRT_BLOB_CODE_START = '0x08000000', | |
2381 IRT_BLOB_DATA_START = '0x18000000', | |
2382 | |
2383 # always optimize binaries | 2385 # always optimize binaries |
2384 # Command line option nacl_ccflags=... add additional option to nacl build | 2386 # Command line option nacl_ccflags=... add additional option to nacl build |
2385 CCFLAGS = ['-O2', | 2387 CCFLAGS = ['-O2', |
2386 '-fomit-frame-pointer', | 2388 '-fomit-frame-pointer', |
2387 '-Wall', | 2389 '-Wall', |
2388 '-fdiagnostics-show-option', | 2390 '-fdiagnostics-show-option', |
2389 '-pedantic', | 2391 '-pedantic', |
2390 ] + | 2392 ] + |
2391 werror_flags + | 2393 werror_flags + |
2392 ['${EXTRA_CCFLAGS}'] , | 2394 ['${EXTRA_CCFLAGS}'] , |
2393 CPPPATH = ['$SOURCE_ROOT'], | 2395 |
2394 CFLAGS = ['-std=gnu99', | 2396 CFLAGS = ['-std=gnu99', |
2395 ] + | 2397 ] + |
2396 ['${EXTRA_CFLAGS}'], | 2398 ['${EXTRA_CFLAGS}'], |
2397 CXXFLAGS = ['-std=gnu++98', | 2399 CXXFLAGS = ['-std=gnu++98', |
2398 '-Wno-long-long', | 2400 '-Wno-long-long', |
2399 ] + | 2401 ] + |
2400 ['${EXTRA_CXXFLAGS}'], | 2402 ['${EXTRA_CXXFLAGS}'], |
2403 | |
2404 # This is the address at which a user executable is expected to | |
2405 # place its data segment in order to be compatible with the | |
2406 # integrated runtime (IRT) library. | |
2407 IRT_DATA_REGION_START = '0x10000000', | |
2408 # Load addresses of the IRT's code and data segments. | |
2409 IRT_BLOB_CODE_START = '0x08000000', | |
2410 IRT_BLOB_DATA_START = '0x18000000', | |
2411 ) | |
2412 | |
2413 # These add on to those set in pre_base_env, above. | |
2414 nacl_common_env.Append( | |
2415 CPPDEFINES = [ | |
2416 # This ensures that UINT32_MAX gets defined. | |
2417 ['__STDC_LIMIT_MACROS', '1'], | |
2418 # This ensures that PRId64 etc. get defined. | |
2419 ['__STDC_FORMAT_MACROS', '1'], | |
2420 # _GNU_SOURCE ensures that strtof() gets declared. | |
2421 ['_GNU_SOURCE', 1], | |
2422 # strdup, and other common stuff | |
2423 ['_BSD_SOURCE', '1'], | |
2424 ['_POSIX_C_SOURCE', '199506'], | |
2425 ['_XOPEN_SOURCE', '600'], | |
2426 | |
2427 ['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], | |
2428 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ], | |
2429 ], | |
2430 ) | |
2431 | |
2432 def FixWindowsAssembler(env): | |
2433 if env.Bit('host_windows'): | |
2434 # NOTE: This is needed because Windows builds are case-insensitive. | |
2435 # Without this we use nacl-as, which doesn't handle include directives, etc. | |
2436 env.Replace(ASCOM='${CCCOM}') | |
2437 | |
2438 FixWindowsAssembler(nacl_common_env) | |
2439 | |
2440 # TODO(mcgrathr,pdox): llc troubles at final link time if the libraries are | |
2441 # built with optimization, remove this hack when the compiler is fixed. | |
2442 # http://code.google.com/p/nativeclient/issues/detail?id=1225 | |
2443 if nacl_common_env.Bit('bitcode'): | |
2444 optflags = ['-O0','-O1','-O2','-O3'] | |
2445 nacl_common_env.FilterOut(CCFLAGS=optflags) | |
2446 nacl_common_env.FilterOut(LINKFLAGS=optflags) | |
2447 nacl_common_env.FilterOut(CCFLAGS=optflags) | |
2448 nacl_common_env.FilterOut(CXXFLAGS=optflags) | |
2449 | |
2450 nacl_env = nacl_common_env.Clone( | |
2451 BUILD_TYPE = 'nacl', | |
2452 BUILD_TYPE_DESCRIPTION = 'NaCl module build', | |
2453 | |
2454 # This magic is copied from scons-2.0.1/engine/SCons/Defaults.py | |
2455 # where this pattern is used for _LIBDIRFLAGS, which produces -L | |
2456 # switches. Here we are producing a -Wl,-rpath-link,DIR for each | |
2457 # element of LIBPATH, i.e. for each -LDIR produced. | |
2458 RPATH_LINK_FLAGS = '$( ${_concat(RPATHLINKPREFIX, LIBPATH, RPATHLINKSUFFIX,' | |
2459 '__env__, RDirs, TARGET, SOURCE)} $)', | |
2460 RPATHLINKPREFIX = '-Wl,-rpath-link,', | |
2461 RPATHLINKSUFFIX = '', | |
2462 | |
2401 LIBS = [], | 2463 LIBS = [], |
2402 LINKFLAGS = ['${EXTRA_LINKFLAGS}'], | 2464 LINKFLAGS = ['${EXTRA_LINKFLAGS}', '${RPATH_LINK_FLAGS}'], |
2403 CPPDEFINES = [ | |
2404 # _GNU_SOURCE ensures that strtof() gets declared. | |
2405 ['_GNU_SOURCE', 1], | |
2406 # This ensures that PRId64 etc. get defined. | |
2407 ['__STDC_FORMAT_MACROS', '1'], | |
2408 # strdup, and other common stuff | |
2409 ['_BSD_SOURCE', '1'], | |
2410 ['_POSIX_C_SOURCE', '199506'], | |
2411 ['_XOPEN_SOURCE', '600'], | |
2412 ], | |
2413 ) | 2465 ) |
2414 | 2466 |
2467 # Look in the local include and lib directories before the toolchain's. | |
2468 nacl_env['INCLUDE_DIR'] = '${TARGET_ROOT}/include' | |
2469 # Remove the default $LIB_DIR element so that we prepend it without duplication. | |
2470 # Using PrependUnique alone would let it stay last, where we want it first. | |
2471 nacl_env.FilterOut(LIBPATH=['${LIB_DIR}']) | |
2472 nacl_env.PrependUnique( | |
2473 CPPPATH = ['${INCLUDE_DIR}'], | |
2474 LIBPATH = ['${LIB_DIR}'], | |
2475 ) | |
2476 | |
2415 if not nacl_env.Bit('bitcode'): | 2477 if not nacl_env.Bit('bitcode'): |
2416 if nacl_env.Bit('build_x86_32'): | 2478 if nacl_env.Bit('build_x86_32'): |
2417 nacl_env.Append(CCFLAGS = ['-m32'], LINKFLAGS = '-m32') | 2479 nacl_env.Append(CCFLAGS = ['-m32'], LINKFLAGS = '-m32') |
2418 elif nacl_env.Bit('build_x86_64'): | 2480 elif nacl_env.Bit('build_x86_64'): |
2419 nacl_env.Append(CCFLAGS = ['-m64'], LINKFLAGS = '-m64') | 2481 nacl_env.Append(CCFLAGS = ['-m64'], LINKFLAGS = '-m64') |
2420 | 2482 |
2421 if nacl_env.Bit('bitcode'): | 2483 if nacl_env.Bit('bitcode'): |
2422 # TODO(robertm): remove this ASAP, we currently have llvm issue with c++ | 2484 # TODO(robertm): remove this ASAP, we currently have llvm issue with c++ |
2423 nacl_env.FilterOut(CCFLAGS = ['-Werror']) | 2485 nacl_env.FilterOut(CCFLAGS = ['-Werror']) |
2424 nacl_env.Append(CFLAGS = werror_flags) | 2486 nacl_env.Append(CFLAGS = werror_flags) |
(...skipping 21 matching lines...) Expand all Loading... | |
2446 NACL_BUILD_FAMILY = 'UNTRUSTED_IRT', | 2508 NACL_BUILD_FAMILY = 'UNTRUSTED_IRT', |
2447 ) | 2509 ) |
2448 | 2510 |
2449 # http://code.google.com/p/nativeclient/issues/detail?id=1225 | 2511 # http://code.google.com/p/nativeclient/issues/detail?id=1225 |
2450 if nacl_irt_env.Bit('bitcode'): | 2512 if nacl_irt_env.Bit('bitcode'): |
2451 optflags = ['-O0','-O1','-O2','-O3'] | 2513 optflags = ['-O0','-O1','-O2','-O3'] |
2452 nacl_irt_env.FilterOut(LINKFLAGS=optflags) | 2514 nacl_irt_env.FilterOut(LINKFLAGS=optflags) |
2453 nacl_irt_env.FilterOut(CCFLAGS=optflags) | 2515 nacl_irt_env.FilterOut(CCFLAGS=optflags) |
2454 nacl_irt_env.FilterOut(CXXFLAGS=optflags) | 2516 nacl_irt_env.FilterOut(CXXFLAGS=optflags) |
2455 | 2517 |
2518 # This needs to happen pretty early, because it affects any concretized | |
2519 # directory names. | |
2520 def AddTargetRootSuffix(env, bit_name, suffix): | |
2521 """Add a suffix to the subdirectory of scons-out that we use. This | |
2522 usually does not affect correctness, but saves us triggering a | |
2523 rebuild whenever we add or remove a build option such as --nacl_glibc. | |
2524 """ | |
2525 if env.Bit(bit_name): | |
2526 pathname = '%s-%s' % (env.subst('${TARGET_ROOT}'), suffix) | |
2527 env.Replace(TARGET_ROOT=pathname) | |
2528 | |
2529 AddTargetRootSuffix(nacl_env, 'bitcode', 'pnacl') | |
2530 AddTargetRootSuffix(nacl_env, 'nacl_pic', 'pic') | |
2531 AddTargetRootSuffix(nacl_env, 'use_sandboxed_translator', 'sbtc') | |
2532 AddTargetRootSuffix(nacl_env, 'nacl_glibc', 'glibc') | |
2456 | 2533 |
2457 if nacl_env.Bit('irt'): | 2534 if nacl_env.Bit('irt'): |
2458 nacl_env.Replace(PPAPI_LIBS=['ppapi']) | 2535 nacl_env.Replace(PPAPI_LIBS=['ppapi']) |
2459 # Even non-PPAPI nexes need this for IRT-compatible linking. | 2536 # Even non-PPAPI nexes need this for IRT-compatible linking. |
2460 # We don't just make them link with ${PPAPI_LIBS} because in | 2537 # We don't just make them link with ${PPAPI_LIBS} because in |
2461 # the non-IRT case under dynamic linking, that tries to link | 2538 # the non-IRT case under dynamic linking, that tries to link |
2462 # in libppruntime.so with its undefined symbols and fails | 2539 # in libppruntime.so with its undefined symbols and fails |
2463 # for nexes that aren't actually PPAPI users. | 2540 # for nexes that aren't actually PPAPI users. |
2464 nacl_env.Replace(NON_PPAPI_BROWSER_LIBS=nacl_env['PPAPI_LIBS']) | 2541 nacl_env.Replace(NON_PPAPI_BROWSER_LIBS=nacl_env['PPAPI_LIBS']) |
2465 else: | 2542 else: |
(...skipping 16 matching lines...) Expand all Loading... | |
2482 if (nacl_env.Bit('nacl_glibc') and | 2559 if (nacl_env.Bit('nacl_glibc') and |
2483 nacl_env.Bit('nacl_static_link') and | 2560 nacl_env.Bit('nacl_static_link') and |
2484 not nacl_env.Bit('bitcode')): | 2561 not nacl_env.Bit('bitcode')): |
2485 # The "-lc" is necessary because libgcc_eh depends on libc but for | 2562 # The "-lc" is necessary because libgcc_eh depends on libc but for |
2486 # some reason nacl-gcc is not linking with "--start-group/--end-group". | 2563 # some reason nacl-gcc is not linking with "--start-group/--end-group". |
2487 nacl_env.Append(LINKFLAGS=[ | 2564 nacl_env.Append(LINKFLAGS=[ |
2488 '-static', | 2565 '-static', |
2489 '-T', 'ldscripts/%s.x.static' % GetLinkerScriptBaseName(nacl_env), | 2566 '-T', 'ldscripts/%s.x.static' % GetLinkerScriptBaseName(nacl_env), |
2490 '-lc']) | 2567 '-lc']) |
2491 | 2568 |
2492 def AddTargetRootSuffix(env, bit_name, suffix): | |
2493 """Add a suffix to the subdirectory of scons-out that we use. This | |
2494 usually does not affect correctness, but saves us triggering a | |
2495 rebuild whenever we add or remove a build option such as --nacl_glibc. | |
2496 """ | |
2497 if env.Bit(bit_name): | |
2498 pathname = '%s-%s' % (env.subst('${TARGET_ROOT}'), suffix) | |
2499 env.Replace(TARGET_ROOT=pathname) | |
2500 | |
2501 AddTargetRootSuffix(nacl_env, 'bitcode', 'pnacl') | |
2502 AddTargetRootSuffix(nacl_env, 'nacl_pic', 'pic') | |
2503 AddTargetRootSuffix(nacl_env, 'use_sandboxed_translator', 'sbtc') | |
2504 AddTargetRootSuffix(nacl_env, 'nacl_glibc', 'glibc') | |
2505 | |
2506 if nacl_env.Bit('running_on_valgrind'): | 2569 if nacl_env.Bit('running_on_valgrind'): |
2507 nacl_env.Append(CCFLAGS = ['-g', '-Wno-overlength-strings', | 2570 nacl_env.Append(CCFLAGS = ['-g', '-Wno-overlength-strings', |
2508 '-fno-optimize-sibling-calls'], | 2571 '-fno-optimize-sibling-calls'], |
2509 CPPDEFINES = [['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], | 2572 CPPDEFINES = [['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], |
2510 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ]]) | 2573 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ]]) |
2511 # With GLibC, libvalgrind.so is preloaded at runtime. | 2574 # With GLibC, libvalgrind.so is preloaded at runtime. |
2512 # With Newlib, it has to be linked in. | 2575 # With Newlib, it has to be linked in. |
2513 if not nacl_env.Bit('nacl_glibc'): | 2576 if not nacl_env.Bit('nacl_glibc'): |
2514 nacl_env.Append(LINKFLAGS = ['-Wl,-u,have_nacl_valgrind_interceptors'], | 2577 nacl_env.Append(LINKFLAGS = ['-Wl,-u,have_nacl_valgrind_interceptors'], |
2515 LIBS = ['valgrind']) | 2578 LIBS = ['valgrind']) |
2516 | 2579 |
2517 environment_list.append(nacl_env) | 2580 environment_list.append(nacl_env) |
2518 | 2581 |
2582 if not nacl_env.Bit('nacl_glibc'): | |
2583 # These are all specific to nacl-newlib so we do not include them | |
2584 # when building against nacl-glibc. The functionality of | |
2585 # pthread/startup/stubs/nosys is provided by glibc. The valgrind | |
2586 # code currently assumes nc_threads. | |
2587 nacl_env.Append( | |
2588 BUILD_SCONSCRIPTS = [ | |
2589 #### ALPHABETICALLY SORTED #### | |
2590 'src/untrusted/pthread/nacl.scons', | |
2591 'src/untrusted/startup/nacl.scons', | |
2592 'src/untrusted/stubs/nacl.scons', | |
2593 'src/untrusted/nosys/nacl.scons', | |
2594 #### ALPHABETICALLY SORTED #### | |
2595 ]) | |
2596 | |
2519 nacl_env.Append( | 2597 nacl_env.Append( |
2520 BUILD_SCONSCRIPTS = [ | 2598 BUILD_SCONSCRIPTS = [ |
2521 #### ALPHABETICALLY SORTED #### | 2599 #### ALPHABETICALLY SORTED #### |
2600 'src/include/nacl/nacl.scons', | |
2601 'src/shared/gio/nacl.scons', | |
2602 'src/shared/imc/nacl.scons', | |
2603 'src/shared/platform/nacl.scons', | |
2604 'src/shared/ppapi/nacl.scons', | |
2605 'src/shared/ppapi_proxy/nacl.scons', | |
2606 'src/shared/srpc/nacl.scons', | |
2522 'src/tools/posix_over_imc/nacl.scons', | 2607 'src/tools/posix_over_imc/nacl.scons', |
2523 'src/trusted/service_runtime/nacl.scons', | 2608 'src/trusted/service_runtime/nacl.scons', |
2524 'src/trusted/validator_x86/nacl.scons', | 2609 'src/trusted/validator_x86/nacl.scons', |
2610 'src/untrusted/ehsupport/nacl.scons', | |
2611 'src/untrusted/irt_stub/nacl.scons', | |
2612 'src/untrusted/nacl/nacl.scons', | |
2613 'src/untrusted/ppapi/nacl.scons', | |
2614 'src/untrusted/valgrind/nacl.scons', | |
2525 'tests/app_lib/nacl.scons', | 2615 'tests/app_lib/nacl.scons', |
2526 'tests/autoloader/nacl.scons', | 2616 'tests/autoloader/nacl.scons', |
2527 'tests/barebones/nacl.scons', | 2617 'tests/barebones/nacl.scons', |
2528 'tests/blob_library_loading/nacl.scons', | 2618 'tests/blob_library_loading/nacl.scons', |
2529 'tests/browser_dynamic_library/nacl.scons', | 2619 'tests/browser_dynamic_library/nacl.scons', |
2530 'tests/browser_startup_time/nacl.scons', | 2620 'tests/browser_startup_time/nacl.scons', |
2531 'tests/bundle_size/nacl.scons', | 2621 'tests/bundle_size/nacl.scons', |
2532 'tests/callingconv/nacl.scons', | 2622 'tests/callingconv/nacl.scons', |
2533 'tests/chrome_extension/nacl.scons', | 2623 'tests/chrome_extension/nacl.scons', |
2534 'tests/computed_gotos/nacl.scons', | 2624 'tests/computed_gotos/nacl.scons', |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2566 'tests/nanosleep/nacl.scons', | 2656 'tests/nanosleep/nacl.scons', |
2567 'tests/native_worker/nacl.scons', | 2657 'tests/native_worker/nacl.scons', |
2568 'tests/noop/nacl.scons', | 2658 'tests/noop/nacl.scons', |
2569 'tests/nrd_xfer/nacl.scons', | 2659 'tests/nrd_xfer/nacl.scons', |
2570 'tests/nthread_nice/nacl.scons', | 2660 'tests/nthread_nice/nacl.scons', |
2571 'tests/null/nacl.scons', | 2661 'tests/null/nacl.scons', |
2572 'tests/nullptr/nacl.scons', | 2662 'tests/nullptr/nacl.scons', |
2573 'tests/plugin_async_messaging/nacl.scons', | 2663 'tests/plugin_async_messaging/nacl.scons', |
2574 'tests/pnacl_abi/nacl.scons', | 2664 'tests/pnacl_abi/nacl.scons', |
2575 'tests/pnacl_client_translator/nacl.scons', | 2665 'tests/pnacl_client_translator/nacl.scons', |
2666 'tests/ppapi/nacl.scons', | |
2576 'tests/ppapi_browser/bad/nacl.scons', | 2667 'tests/ppapi_browser/bad/nacl.scons', |
2577 'tests/ppapi_browser/manifest/nacl.scons', | 2668 'tests/ppapi_browser/manifest/nacl.scons', |
2578 'tests/ppapi_browser/ppb_core/nacl.scons', | 2669 'tests/ppapi_browser/ppb_core/nacl.scons', |
2579 'tests/ppapi_browser/ppb_graphics2d/nacl.scons', | 2670 'tests/ppapi_browser/ppb_graphics2d/nacl.scons', |
2580 'tests/ppapi_browser/ppb_scrollbar/nacl.scons', | 2671 'tests/ppapi_browser/ppb_scrollbar/nacl.scons', |
2581 'tests/ppapi_browser/progress_events/nacl.scons', | 2672 'tests/ppapi_browser/progress_events/nacl.scons', |
2582 'tests/ppapi_example_2d/nacl.scons', | 2673 'tests/ppapi_example_2d/nacl.scons', |
2583 'tests/ppapi_example_audio/nacl.scons', | 2674 'tests/ppapi_example_audio/nacl.scons', |
2584 'tests/ppapi_example_events/nacl.scons', | 2675 'tests/ppapi_example_events/nacl.scons', |
2585 'tests/ppapi_example_font/nacl.scons', | 2676 'tests/ppapi_example_font/nacl.scons', |
2586 'tests/ppapi_example_gles2/nacl.scons', | 2677 'tests/ppapi_example_gles2/nacl.scons', |
2587 'tests/ppapi_example_post_message/nacl.scons', | 2678 'tests/ppapi_example_post_message/nacl.scons', |
2588 'tests/ppapi_file_system/nacl.scons', | 2679 'tests/ppapi_file_system/nacl.scons', |
2589 'tests/ppapi_geturl/nacl.scons', | 2680 'tests/ppapi_geturl/nacl.scons', |
2590 'tests/ppapi_gles_book/nacl.scons', | 2681 'tests/ppapi_gles_book/nacl.scons', |
2591 'tests/ppapi_messaging/nacl.scons', | 2682 'tests/ppapi_messaging/nacl.scons', |
2592 'tests/ppapi_proxy/nacl.scons', | 2683 'tests/ppapi_proxy/nacl.scons', |
2593 'tests/ppapi_simple_tests/nacl.scons', | 2684 'tests/ppapi_simple_tests/nacl.scons', |
2594 'tests/ppapi_test_example/nacl.scons', | 2685 'tests/ppapi_test_example/nacl.scons', |
2595 'tests/ppapi_test_lib/nacl.scons', | 2686 'tests/ppapi_test_lib/nacl.scons', |
2596 'tests/ppapi_tests/nacl.scons', | 2687 'tests/ppapi_tests/nacl.scons', |
2597 'tests/ppapi/nacl.scons', | |
2598 'tests/pyauto_nacl/nacl.scons', | 2688 'tests/pyauto_nacl/nacl.scons', |
2599 'tests/redir/nacl.scons', | 2689 'tests/redir/nacl.scons', |
2600 'tests/rodata_not_writable/nacl.scons', | 2690 'tests/rodata_not_writable/nacl.scons', |
2601 'tests/signal_handler/nacl.scons', | 2691 'tests/signal_handler/nacl.scons', |
2602 'tests/srpc/nacl.scons', | 2692 'tests/srpc/nacl.scons', |
2603 'tests/srpc_hw/nacl.scons', | 2693 'tests/srpc_hw/nacl.scons', |
2604 'tests/srpc_message/nacl.scons', | 2694 'tests/srpc_message/nacl.scons', |
2605 'tests/stack_alignment/nacl.scons', | 2695 'tests/stack_alignment/nacl.scons', |
2606 'tests/startup_message/nacl.scons', | 2696 'tests/startup_message/nacl.scons', |
2607 'tests/stubout_mode/nacl.scons', | 2697 'tests/stubout_mode/nacl.scons', |
2608 'tests/sysbasic/nacl.scons', | 2698 'tests/sysbasic/nacl.scons', |
2699 'tests/syscall_return_sandboxing/nacl.scons', | |
2609 'tests/syscalls/nacl.scons', | 2700 'tests/syscalls/nacl.scons', |
2610 'tests/syscall_return_sandboxing/nacl.scons', | |
2611 'tests/threads/nacl.scons', | 2701 'tests/threads/nacl.scons', |
2612 'tests/time/nacl.scons', | 2702 'tests/time/nacl.scons', |
2613 'tests/tls/nacl.scons', | 2703 'tests/tls/nacl.scons', |
2614 'tests/toolchain/nacl.scons', | 2704 'tests/toolchain/nacl.scons', |
2615 'tests/unittests/shared/imc/nacl.scons', | 2705 'tests/unittests/shared/imc/nacl.scons', |
2616 'tests/unittests/shared/srpc/nacl.scons', | 2706 'tests/unittests/shared/srpc/nacl.scons', |
2617 'tests/untrusted_check/nacl.scons', | 2707 'tests/untrusted_check/nacl.scons', |
2618 #### ALPHABETICALLY SORTED #### | 2708 #### ALPHABETICALLY SORTED #### |
2619 ]) | 2709 ]) |
2620 | 2710 |
2621 nacl_env.Append( | 2711 nacl_env.Append( |
2622 BUILD_SCONSCRIPTS = [ | 2712 BUILD_SCONSCRIPTS = [ |
2623 'tools/tests/nacl.scons', | 2713 'tools/tests/nacl.scons', |
2624 ]) | 2714 ]) |
2625 | 2715 |
2626 # ---------------------------------------------------------- | 2716 # ---------------------------------------------------------- |
2627 # Possibly install an sdk by downloading it | 2717 # Possibly install an sdk by downloading it |
2628 # ---------------------------------------------------------- | 2718 # ---------------------------------------------------------- |
2629 # TODO: explore using a less heavy weight mechanism | 2719 # TODO: explore using a less heavy weight mechanism |
2630 # NOTE: this uses stuff from: site_scons/site_tools/naclsdk.py | 2720 # NOTE: this uses stuff from: site_scons/site_tools/naclsdk.py |
2631 import SCons.Script | 2721 import SCons.Script |
2632 | 2722 |
2633 SCons.Script.AddOption('--download', | 2723 SCons.Script.AddOption('--download', |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2668 n = env.Replicate(path, nodes) | 2758 n = env.Replicate(path, nodes) |
2669 env.Alias('prebuilt_binaries_update', n) | 2759 env.Alias('prebuilt_binaries_update', n) |
2670 return n | 2760 return n |
2671 | 2761 |
2672 nacl_env.AddMethod(AddPrebuiltBinaryToRepository) | 2762 nacl_env.AddMethod(AddPrebuiltBinaryToRepository) |
2673 # ---------------------------------------------------------- | 2763 # ---------------------------------------------------------- |
2674 # We force this into a separate env so that the tests in nacl_env | 2764 # We force this into a separate env so that the tests in nacl_env |
2675 # have NO access to any libraries build here but need to link them | 2765 # have NO access to any libraries build here but need to link them |
2676 # from the sdk libdir | 2766 # from the sdk libdir |
2677 # ---------------------------------------------------------- | 2767 # ---------------------------------------------------------- |
2678 nacl_extra_sdk_env = pre_base_env.Clone( | 2768 nacl_extra_sdk_env = nacl_common_env.Clone( |
2679 tools = ['naclsdk'], | |
2680 BUILD_TYPE = 'nacl_extra_sdk', | 2769 BUILD_TYPE = 'nacl_extra_sdk', |
2681 BUILD_TYPE_DESCRIPTION = 'NaCl SDK extra library build', | 2770 BUILD_TYPE_DESCRIPTION = 'NaCl SDK extra library build', |
2682 NACL_BUILD_FAMILY = 'UNTRUSTED', | |
2683 IRT_DATA_REGION_START = nacl_env['IRT_DATA_REGION_START'], | |
2684 # ${SOURCE_ROOT} for #include <ppapi/...> | |
2685 # ${SOURCE_ROOT}/gpu for #include <GLES2/...>" | |
2686 CPPPATH = ['${SOURCE_ROOT}', '${SOURCE_ROOT}/gpu'], | |
2687 CPPDEFINES = [ | |
2688 ['NACL_BUILD_ARCH', '${BUILD_ARCHITECTURE}' ], | |
2689 ['NACL_BUILD_SUBARCH', '${BUILD_SUBARCH}' ], | |
2690 ['NACL_BLOCK_SHIFT', '5' ], | |
2691 ['DYNAMIC_ANNOTATIONS_ENABLED', '1' ], | |
2692 ['DYNAMIC_ANNOTATIONS_PREFIX', 'NACL_' ], | |
2693 # This ensures that UINT32_MAX gets defined. | |
2694 ['__STDC_LIMIT_MACROS', '1'], | |
2695 # This ensures that PRId64 etc. get defined. | |
2696 ['__STDC_FORMAT_MACROS', '1'], | |
2697 ], | |
2698 ARFLAGS = 'rc' | |
2699 ) | 2771 ) |
2700 | 2772 |
2701 AddTargetRootSuffix(nacl_extra_sdk_env, 'bitcode', 'pnacl') | 2773 AddTargetRootSuffix(nacl_extra_sdk_env, 'bitcode', 'pnacl') |
2702 AddTargetRootSuffix(nacl_extra_sdk_env, 'nacl_glibc', 'glibc') | 2774 AddTargetRootSuffix(nacl_extra_sdk_env, 'nacl_glibc', 'glibc') |
2703 | 2775 |
2704 # TODO(robertm): consider moving some of these flags to the naclsdk tool | 2776 # TODO(robertm): consider moving some of these flags to the naclsdk tool |
2705 nacl_extra_sdk_env.Append(CCFLAGS=['-Wall', | 2777 nacl_extra_sdk_env.Append(CCFLAGS=['-Wall', |
2706 '-fdiagnostics-show-option', | 2778 '-fdiagnostics-show-option', |
2707 '-pedantic'] + | 2779 '-pedantic'] + |
2708 werror_flags + | 2780 werror_flags + |
(...skipping 20 matching lines...) Expand all Loading... | |
2729 # class constructors | 2801 # class constructors |
2730 if nacl_extra_sdk_env.Bit('target_arm'): | 2802 if nacl_extra_sdk_env.Bit('target_arm'): |
2731 nacl_extra_sdk_env.FilterOut(CCFLAGS = ['-Werror']) | 2803 nacl_extra_sdk_env.FilterOut(CCFLAGS = ['-Werror']) |
2732 nacl_extra_sdk_env.Append(CFLAGS = werror_flags) | 2804 nacl_extra_sdk_env.Append(CFLAGS = werror_flags) |
2733 | 2805 |
2734 # TODO(pdox): Remove this as soon as build_config.h can be | 2806 # TODO(pdox): Remove this as soon as build_config.h can be |
2735 # changed to accept __pnacl__. | 2807 # changed to accept __pnacl__. |
2736 if nacl_extra_sdk_env.Bit('bitcode'): | 2808 if nacl_extra_sdk_env.Bit('bitcode'): |
2737 nacl_extra_sdk_env.AddBiasForPNaCl() | 2809 nacl_extra_sdk_env.AddBiasForPNaCl() |
2738 | 2810 |
2739 if nacl_extra_sdk_env.Bit('host_windows'): | |
2740 # NOTE: This is needed because Windows builds are case-insensitive. | |
2741 # Without this we use nacl-as, which doesn't handle include directives, etc. | |
2742 nacl_extra_sdk_env.Replace(ASCOM = '${CCCOM}') | |
2743 | |
2744 if nacl_env.Bit('host_windows'): | |
2745 # NOTE: This is needed because Windows builds are case-insensitive. | |
2746 # Without this we use nacl-as, which doesn't handle include directives, etc. | |
2747 nacl_env.Replace(ASCOM = '${CCCOM}') | |
2748 | |
2749 | 2811 |
2750 def NaClSdkLibrary(env, lib_name, *args, **kwargs): | 2812 def NaClSdkLibrary(env, lib_name, *args, **kwargs): |
2751 env.ComponentLibrary(lib_name, *args, **kwargs) | 2813 env.ComponentLibrary(lib_name, *args, **kwargs) |
2752 if not env.Bit('nacl_disable_shared'): | 2814 if not env.Bit('nacl_disable_shared'): |
2753 env_shared = env.Clone(COMPONENT_STATIC=False) | 2815 env_shared = env.Clone(COMPONENT_STATIC=False) |
2754 soname = SCons.Util.adjustixes(lib_name, 'lib', '.so') | 2816 soname = SCons.Util.adjustixes(lib_name, 'lib', '.so') |
2755 env_shared.AppendUnique(SHLINKFLAGS=['-Wl,-soname,%s' % (soname)]) | 2817 env_shared.AppendUnique(SHLINKFLAGS=['-Wl,-soname,%s' % (soname)]) |
2756 env_shared.ComponentLibrary(lib_name, *args, **kwargs) | 2818 env_shared.ComponentLibrary(lib_name, *args, **kwargs) |
2757 | 2819 |
2758 nacl_extra_sdk_env.AddMethod(NaClSdkLibrary) | 2820 nacl_extra_sdk_env.AddMethod(NaClSdkLibrary) |
2821 nacl_env.AddMethod(NaClSdkLibrary) | |
2759 | 2822 |
2760 | 2823 |
2761 # --------------------------------------------------------------------- | 2824 # --------------------------------------------------------------------- |
2762 # Special environment for untrusted test binaries that use raw syscalls | 2825 # Special environment for untrusted test binaries that use raw syscalls |
2763 # --------------------------------------------------------------------- | 2826 # --------------------------------------------------------------------- |
2764 def RawSyscallObjects(env, sources): | 2827 def RawSyscallObjects(env, sources): |
2765 raw_syscall_env = env.Clone() | 2828 raw_syscall_env = env.Clone() |
2766 raw_syscall_env.Append( | 2829 raw_syscall_env.Append( |
2767 CPPDEFINES = [ | 2830 CPPDEFINES = [ |
2768 ['USE_RAW_SYSCALLS', '1'], | 2831 ['USE_RAW_SYSCALLS', '1'], |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2846 nacl_extra_sdk_env.Alias('extra_sdk_update', [libs, libs_platform]) | 2909 nacl_extra_sdk_env.Alias('extra_sdk_update', [libs, libs_platform]) |
2847 | 2910 |
2848 | 2911 |
2849 # Add a header file to the toolchain. By default, Native Client-specific | 2912 # Add a header file to the toolchain. By default, Native Client-specific |
2850 # headers go under nacl/, but there are non-specific headers, such as | 2913 # headers go under nacl/, but there are non-specific headers, such as |
2851 # the OpenGLES2 headers, that go under their own subdir. | 2914 # the OpenGLES2 headers, that go under their own subdir. |
2852 def AddHeaderToSdk(env, nodes, subdir = 'nacl/'): | 2915 def AddHeaderToSdk(env, nodes, subdir = 'nacl/'): |
2853 dir = ARGUMENTS.get('extra_sdk_include_destination') | 2916 dir = ARGUMENTS.get('extra_sdk_include_destination') |
2854 if not dir: | 2917 if not dir: |
2855 dir = '${NACL_SDK_INCLUDE}' | 2918 dir = '${NACL_SDK_INCLUDE}' |
2856 | 2919 if subdir is not None: |
2857 n = env.Replicate(dir + '/' + subdir, nodes) | 2920 dir += '/' + subdir |
2921 n = env.Replicate(dir, nodes) | |
2858 env.Alias('extra_sdk_update_header', n) | 2922 env.Alias('extra_sdk_update_header', n) |
2859 return n | 2923 return n |
2860 | 2924 |
2861 nacl_extra_sdk_env.AddMethod(AddHeaderToSdk) | 2925 nacl_extra_sdk_env.AddMethod(AddHeaderToSdk) |
2862 | 2926 |
2863 | 2927 |
2864 def AddLibraryToSdkHelper(env, nodes, is_lib, is_platform): | 2928 def AddLibraryToSdkHelper(env, nodes, is_lib, is_platform): |
2865 """"Helper function to install libs/objs into the toolchain | 2929 """"Helper function to install libs/objs into the toolchain |
2866 and associate the action with the extra_sdk_update. | 2930 and associate the action with the extra_sdk_update. |
2867 | 2931 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2913 # The IRT-building environment was cloned from nacl_env, but it should | 2977 # The IRT-building environment was cloned from nacl_env, but it should |
2914 # ignore the --nacl_glibc, nacl_pic=1 and bitcode=1 switches. | 2978 # ignore the --nacl_glibc, nacl_pic=1 and bitcode=1 switches. |
2915 # We have to reinstantiate the naclsdk.py magic after clearing those flags, | 2979 # We have to reinstantiate the naclsdk.py magic after clearing those flags, |
2916 # so it regenerates the tool paths right. | 2980 # so it regenerates the tool paths right. |
2917 # TODO(mcgrathr,bradnelson): could get cleaner if naclsdk.py got folded back in. | 2981 # TODO(mcgrathr,bradnelson): could get cleaner if naclsdk.py got folded back in. |
2918 nacl_irt_env.ClearBits('nacl_glibc') | 2982 nacl_irt_env.ClearBits('nacl_glibc') |
2919 nacl_irt_env.ClearBits('nacl_pic') | 2983 nacl_irt_env.ClearBits('nacl_pic') |
2920 if not nacl_irt_env.Bit('target_arm'): | 2984 if not nacl_irt_env.Bit('target_arm'): |
2921 nacl_irt_env.ClearBits('bitcode') | 2985 nacl_irt_env.ClearBits('bitcode') |
2922 nacl_irt_env.Tool('naclsdk') | 2986 nacl_irt_env.Tool('naclsdk') |
2987 FixWindowsAssembler(nacl_irt_env) | |
2923 # Make it find the libraries it builds, rather than the SDK ones. | 2988 # Make it find the libraries it builds, rather than the SDK ones. |
2924 nacl_irt_env.Replace(LIBPATH='${LIB_DIR}') | 2989 nacl_irt_env.Replace(LIBPATH='${LIB_DIR}') |
2925 | 2990 |
2926 AddTargetRootSuffix(nacl_irt_env, 'bitcode', 'pnacl') | |
2927 AddTargetRootSuffix(nacl_irt_env, 'nacl_pic', 'pic') | |
2928 if nacl_irt_env.Bit('bitcode'): | 2991 if nacl_irt_env.Bit('bitcode'): |
2929 nacl_irt_env.AddBiasForPNaCl() | 2992 nacl_irt_env.AddBiasForPNaCl() |
2930 | 2993 |
2931 # We have to stub out various methods that are only defined in | 2994 # We have to stub out various methods that are only defined in |
2932 # nacl_extra_sdk_env, because we doubly use these nacl.scons files | 2995 # nacl_extra_sdk_env, because we doubly use these nacl.scons files |
2933 # in nacl_irt_env. | 2996 # in nacl_irt_env. |
2934 # TODO(mcgrathr): Remove these when nacl_extra_sdk_env is removed. | 2997 # TODO(mcgrathr): Remove these when nacl_extra_sdk_env is removed. |
2935 def IrtAddLibraryToSdk(env, nodes, is_platform=False): | 2998 def AddLibraryDummy(env, nodes, is_platform=False): |
2936 pass | 2999 return [env.File('${LIB_DIR}/%s.a' % x) for x in nodes] |
2937 nacl_irt_env.AddMethod(IrtAddLibraryToSdk, 'AddLibraryToSdk') | 3000 nacl_env.AddMethod(AddLibraryDummy, 'AddLibraryToSdk') |
2938 nacl_irt_env.AddMethod(IrtAddLibraryToSdk, 'AddObjectToSdk') | 3001 nacl_irt_env.AddMethod(AddLibraryDummy, 'AddLibraryToSdk') |
3002 | |
3003 def AddObjectInternal(env, nodes, is_platform=False): | |
3004 return env.Replicate('${LIB_DIR}', nodes) | |
3005 nacl_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') | |
3006 nacl_irt_env.AddMethod(AddObjectInternal, 'AddObjectToSdk') | |
2939 | 3007 |
2940 def IrtNaClSdkLibrary(env, lib_name, *args, **kwargs): | 3008 def IrtNaClSdkLibrary(env, lib_name, *args, **kwargs): |
2941 env.ComponentLibrary(lib_name, *args, **kwargs) | 3009 env.ComponentLibrary(lib_name, *args, **kwargs) |
2942 nacl_irt_env.AddMethod(IrtNaClSdkLibrary, 'NaClSdkLibrary') | 3010 nacl_irt_env.AddMethod(IrtNaClSdkLibrary, 'NaClSdkLibrary') |
2943 | 3011 |
2944 def IrtAddHeaderToSdk(env, nodes, subdir = 'nacl/'): | 3012 # Populate the internal include directory when AddHeaderToSdk |
2945 pass | 3013 # is used inside nacl_env rather than nacl_extra_sdk_env. |
2946 nacl_irt_env.AddMethod(IrtAddHeaderToSdk, 'AddHeaderToSdk') | 3014 def AddHeaderInternal(env, nodes, subdir='nacl'): |
3015 dir = '${INCLUDE_DIR}' | |
3016 if subdir is not None: | |
3017 dir += '/' + subdir | |
3018 n = env.Replicate(dir, nodes) | |
3019 return n | |
3020 | |
3021 nacl_env.AddMethod(AddHeaderInternal, 'AddHeaderToSdk') | |
3022 nacl_irt_env.AddMethod(AddHeaderInternal, 'AddHeaderToSdk') | |
3023 | |
3024 # We want to do this for nacl_env when not under --nacl_glibc, | |
3025 # but for nacl_irt_env whether or not under --nacl_glibc, so | |
3026 # we do it separately for each after making nacl_irt_env and | |
3027 # clearing its Bit('nacl_glibc'). | |
3028 def AddImplicitLibs(env): | |
3029 if not env.Bit('nacl_glibc'): | |
3030 # These are automatically linked in by the compiler, either directly | |
3031 # or via the linker script that is -lc. In the non-glibc build, we | |
3032 # are the ones providing these files, so we need dependencies. | |
3033 # The ComponentProgram method (site_scons/site_tools/component_builders.py) | |
3034 # adds dependencies on env['IMPLICIT_LIBS'] if that's set. | |
3035 implicit_libs = ['crt1.o', 'libnacl.a', 'libcrt_platform.a'] | |
3036 if nacl_env.Bit('bitcode'): | |
3037 implicit_libs += ['libehsupport.a'] | |
3038 else: | |
3039 implicit_libs += ['crti.o', 'crtn.o'] | |
3040 env['IMPLICIT_LIBS'] = ['${LIB_DIR}/%s' % file for file in implicit_libs] | |
3041 # The -B<dir>/ flag is necessary to tell gcc to look for crt[1in].o there. | |
3042 env.Prepend(LINKFLAGS=['-B${LIB_DIR}/']) | |
3043 | |
3044 AddImplicitLibs(nacl_env) | |
3045 AddImplicitLibs(nacl_irt_env) | |
2947 | 3046 |
2948 # Give the environment for building the IRT and its libraries | 3047 # Give the environment for building the IRT and its libraries |
2949 # the -Ds used for building those libraries for the SDK. | 3048 # the -Ds used for building those libraries for the SDK. |
2950 # TODO(mcgrathr,bradnelson): clean up when nacl_extra_sdk_env goes away. | 3049 # TODO(mcgrathr,bradnelson): clean up when nacl_extra_sdk_env goes away. |
2951 # | 3050 # |
2952 # Since we will use a locally-built libpthread rather than the | 3051 # Since we will use a locally-built libpthread rather than the |
2953 # one from the toolchain, find its header files in the source | 3052 # one from the toolchain, find its header files in the source |
2954 # rather than using the ones installed in the toolchain. | 3053 # rather than using the ones installed in the toolchain. |
2955 nacl_irt_env.AppendUnique(CPPDEFINES = nacl_extra_sdk_env['CPPDEFINES'], | 3054 nacl_irt_env.AppendUnique(CPPDEFINES = nacl_extra_sdk_env['CPPDEFINES'], |
2956 CPPPATH = ['${MAIN_DIR}/src/untrusted/pthread']) | 3055 CPPPATH = ['${MAIN_DIR}/src/untrusted/pthread']) |
2957 | 3056 |
2958 # TODO(mcgrathr): nacl, crt_platform are implicitly linked in from toolchain, | 3057 # TODO(mcgrathr): nacl, crt_platform are implicitly linked in from toolchain, |
2959 # scons does not know about the dependencies. We may be building all of | 3058 # scons does not know about the dependencies. We may be building all of |
2960 # src/untrusted/nacl but only actually getting libimc_syscalls.a from there. | 3059 # src/untrusted/nacl but only actually getting libimc_syscalls.a from there. |
2961 nacl_irt_env.Append( | 3060 nacl_irt_env.Append( |
2962 BUILD_SCONSCRIPTS = [ | 3061 BUILD_SCONSCRIPTS = [ |
3062 'src/include/nacl/nacl.scons', | |
2963 'src/shared/gio/nacl.scons', | 3063 'src/shared/gio/nacl.scons', |
2964 'src/shared/platform/nacl.scons', | 3064 'src/shared/platform/nacl.scons', |
2965 'src/shared/ppapi_proxy/nacl.scons', | 3065 'src/shared/ppapi_proxy/nacl.scons', |
2966 'src/shared/srpc/nacl.scons', | 3066 'src/shared/srpc/nacl.scons', |
3067 'src/untrusted/ehsupport/nacl.scons', | |
2967 'src/untrusted/irt/nacl.scons', | 3068 'src/untrusted/irt/nacl.scons', |
2968 'src/untrusted/nacl/nacl.scons', | 3069 'src/untrusted/nacl/nacl.scons', |
2969 'src/untrusted/pthread/nacl.scons', | 3070 'src/untrusted/pthread/nacl.scons', |
3071 'src/untrusted/stubs/nacl.scons', | |
2970 ]) | 3072 ]) |
2971 | 3073 |
2972 environment_list.append(nacl_irt_env) | 3074 environment_list.append(nacl_irt_env) |
2973 | 3075 |
2974 windows_coverage_env = windows_env.Clone( | 3076 windows_coverage_env = windows_env.Clone( |
2975 tools = ['code_coverage'], | 3077 tools = ['code_coverage'], |
2976 BUILD_TYPE = 'coverage-win', | 3078 BUILD_TYPE = 'coverage-win', |
2977 BUILD_TYPE_DESCRIPTION = 'Windows code coverage build', | 3079 BUILD_TYPE_DESCRIPTION = 'Windows code coverage build', |
2978 # TODO(bradnelson): switch nacl to common testing process so this won't be | 3080 # TODO(bradnelson): switch nacl to common testing process so this won't be |
2979 # needed. | 3081 # needed. |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3175 Default(['all_programs', 'all_bundles', 'all_test_programs', 'all_libraries']) | 3277 Default(['all_programs', 'all_bundles', 'all_test_programs', 'all_libraries']) |
3176 | 3278 |
3177 if BROKEN_TEST_COUNT > 0: | 3279 if BROKEN_TEST_COUNT > 0: |
3178 msg = "There are %d broken tests." % BROKEN_TEST_COUNT | 3280 msg = "There are %d broken tests." % BROKEN_TEST_COUNT |
3179 if GetOption('brief_comstr'): | 3281 if GetOption('brief_comstr'): |
3180 msg += " Add --verbose to the command line for more information." | 3282 msg += " Add --verbose to the command line for more information." |
3181 print msg | 3283 print msg |
3182 | 3284 |
3183 # separate warnings from actual build output | 3285 # separate warnings from actual build output |
3184 Banner('B U I L D - O U T P U T:') | 3286 Banner('B U I L D - O U T P U T:') |
OLD | NEW |