Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: site_scons/site_tools/naclsdk.py

Issue 9979025: [MIPS] Adding validator for MIPS architecture. (Closed) Base URL: http://src.chromium.org/native_client/trunk/src/native_client/
Patch Set: Rebased patch, conflict resolved. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pnacl/build.sh ('k') | src/trusted/service_runtime/build.scons » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2012 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 """Nacl SDK tool SCons.""" 6 """Nacl SDK tool SCons."""
7 7
8 import __builtin__ 8 import __builtin__
9 import re 9 import re
10 import os 10 import os
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 ) 216 )
217 217
218 def _SetEnvForPnacl(env, root): 218 def _SetEnvForPnacl(env, root):
219 # All the PNaCl tools require Python to be in the PATH. 219 # All the PNaCl tools require Python to be in the PATH.
220 # On the Windows bots, however, Python is not installed system-wide. 220 # On the Windows bots, however, Python is not installed system-wide.
221 # It must be pulled from ../third_party/python_26. 221 # It must be pulled from ../third_party/python_26.
222 python_dir = os.path.join('..', 'third_party', 'python_26') 222 python_dir = os.path.join('..', 'third_party', 'python_26')
223 env.AppendENVPath('PATH', python_dir) 223 env.AppendENVPath('PATH', python_dir)
224 224
225 arch = env['TARGET_FULLARCH'] 225 arch = env['TARGET_FULLARCH']
226 assert arch in ['arm', 'arm-thumb2', 'x86-32', 'x86-64'] 226 assert arch in ['arm', 'arm-thumb2', 'mips32', 'x86-32', 'x86-64']
227 227
228 arch_flag = ' -arch %s' % arch 228 arch_flag = ' -arch %s' % arch
229 if env.Bit('pnacl_generate_pexe'): 229 if env.Bit('pnacl_generate_pexe'):
230 ld_arch_flag = '' 230 ld_arch_flag = ''
231 else: 231 else:
232 ld_arch_flag = arch_flag 232 ld_arch_flag = arch_flag
233 233
234 if env.Bit('nacl_glibc'): 234 if env.Bit('nacl_glibc'):
235 subroot = root + '/glibc' 235 subroot = root + '/glibc'
236 else: 236 else:
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 LINK=cc_flags) # Already has -arch 400 LINK=cc_flags) # Already has -arch
401 env['LD'] = '${NATIVELD}' + arch_flag 401 env['LD'] = '${NATIVELD}' + arch_flag
402 env['SHLINK'] = '${LINK}' 402 env['SHLINK'] = '${LINK}'
403 if env.Bit('built_elsewhere'): 403 if env.Bit('built_elsewhere'):
404 env.Replace(CC='true', CXX='true', ASPP='true', LINK='true', LD='true') 404 env.Replace(CC='true', CXX='true', ASPP='true', LINK='true', LD='true')
405 405
406 # Get an environment for nacl-gcc when in PNaCl mode. 406 # Get an environment for nacl-gcc when in PNaCl mode.
407 def PNaClGetNNaClEnv(env): 407 def PNaClGetNNaClEnv(env):
408 assert(env.Bit('bitcode')) 408 assert(env.Bit('bitcode'))
409 assert(not env.Bit('target_arm')) 409 assert(not env.Bit('target_arm'))
410 assert(not env.Bit('target_mips32'))
410 411
411 # This is kind of a hack. We clone the environment, 412 # This is kind of a hack. We clone the environment,
412 # clear the bitcode bit, and then reload naclsdk.py 413 # clear the bitcode bit, and then reload naclsdk.py
413 native_env = env.Clone() 414 native_env = env.Clone()
414 native_env.ClearBits('bitcode') 415 native_env.ClearBits('bitcode')
415 native_env.SetBits('native_code') 416 native_env.SetBits('native_code')
416 native_env = native_env.Clone(tools=['naclsdk']) 417 native_env = native_env.Clone(tools=['naclsdk'])
417 if native_env.Bit('pnacl_generate_pexe'): 418 if native_env.Bit('pnacl_generate_pexe'):
418 native_env.Replace(CC='NO-NATIVE-CC-INVOCATION-ALLOWED', 419 native_env.Replace(CC='NO-NATIVE-CC-INVOCATION-ALLOWED',
419 CXX='NO-NATIVE-CXX-INVOCATION-ALLOWED') 420 CXX='NO-NATIVE-CXX-INVOCATION-ALLOWED')
420 else: 421 else:
421 # These are unfortunately clobbered by running Tool. 422 # These are unfortunately clobbered by running Tool.
422 native_env.Replace(EXTRA_CFLAGS=env['EXTRA_CFLAGS'], 423 native_env.Replace(EXTRA_CFLAGS=env['EXTRA_CFLAGS'],
423 EXTRA_CXXFLAGS=env['EXTRA_CXXFLAGS'], 424 EXTRA_CXXFLAGS=env['EXTRA_CXXFLAGS'],
424 CCFLAGS=env['CCFLAGS'], 425 CCFLAGS=env['CCFLAGS'],
425 CFLAGS=env['CFLAGS'], 426 CFLAGS=env['CFLAGS'],
426 CXXFLAGS=env['CXXFLAGS']) 427 CXXFLAGS=env['CXXFLAGS'])
427 if env.Bit('built_elsewhere'): 428 if env.Bit('built_elsewhere'):
428 native_env.Replace(CC='true', CXX='true', LINK='true', LD='true', 429 native_env.Replace(CC='true', CXX='true', LINK='true', LD='true',
429 AR='true', RANLIB='true') 430 AR='true', RANLIB='true')
430 return native_env 431 return native_env
431 432
432 433
433 # This adds architecture specific defines for the target architecture. 434 # This adds architecture specific defines for the target architecture.
434 # These are normally omitted by PNaCl. 435 # These are normally omitted by PNaCl.
435 # For example: __i686__, __arm__, __x86_64__ 436 # For example: __i686__, __arm__, __mips__, __x86_64__
436 def AddBiasForPNaCl(env, temporarily_allow=True): 437 def AddBiasForPNaCl(env, temporarily_allow=True):
437 assert(env.Bit('bitcode')) 438 assert(env.Bit('bitcode'))
438 # re: the temporarily_allow flag -- that is for: 439 # re: the temporarily_allow flag -- that is for:
439 # BUG= http://code.google.com/p/nativeclient/issues/detail?id=1248 440 # BUG= http://code.google.com/p/nativeclient/issues/detail?id=1248
440 if env.Bit('pnacl_generate_pexe') and not temporarily_allow: 441 if env.Bit('pnacl_generate_pexe') and not temporarily_allow:
441 env.Replace(CC='NO-NATIVE-CC-INVOCATION-ALLOWED', 442 env.Replace(CC='NO-NATIVE-CC-INVOCATION-ALLOWED',
442 CXX='NO-NATIVE-CXX-INVOCATION-ALLOWED') 443 CXX='NO-NATIVE-CXX-INVOCATION-ALLOWED')
443 return 444 return
444 445
445 if env.Bit('target_arm'): 446 if env.Bit('target_arm'):
446 env.AppendUnique(CCFLAGS=['--pnacl-arm-bias'], 447 env.AppendUnique(CCFLAGS=['--pnacl-arm-bias'],
447 ASPPFLAGS=['--pnacl-arm-bias']) 448 ASPPFLAGS=['--pnacl-arm-bias'])
448 elif env.Bit('target_x86_32'): 449 elif env.Bit('target_x86_32'):
449 env.AppendUnique(CCFLAGS=['--pnacl-i686-bias'], 450 env.AppendUnique(CCFLAGS=['--pnacl-i686-bias'],
450 ASPPFLAGS=['--pnacl-i686-bias']) 451 ASPPFLAGS=['--pnacl-i686-bias'])
451 elif env.Bit('target_x86_64'): 452 elif env.Bit('target_x86_64'):
452 env.AppendUnique(CCFLAGS=['--pnacl-x86_64-bias'], 453 env.AppendUnique(CCFLAGS=['--pnacl-x86_64-bias'],
453 ASPPFLAGS=['--pnacl-x86_64-bias']) 454 ASPPFLAGS=['--pnacl-x86_64-bias'])
455 elif env.Bit('target_mips32'):
456 env.AppendUnique(CCFLAGS=['--pnacl-mips-bias'],
457 ASPPFLAGS=['--pnacl-mips-bias'])
454 else: 458 else:
455 raise Exception("Unknown architecture!") 459 raise Exception("Unknown architecture!")
456 460
457 461
458 def ValidateSdk(env): 462 def ValidateSdk(env):
459 checkables = ['${NACL_SDK_INCLUDE}/stdio.h'] 463 checkables = ['${NACL_SDK_INCLUDE}/stdio.h']
460 for c in checkables: 464 for c in checkables:
461 if os.path.exists(env.subst(c)): 465 if os.path.exists(env.subst(c)):
462 continue 466 continue
463 # Windows build does not use cygwin and so can not see nacl subdirectory 467 # Windows build does not use cygwin and so can not see nacl subdirectory
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 # Dependency files it produces are to be found in ${LIBPATH}. 644 # Dependency files it produces are to be found in ${LIBPATH}.
641 # It is applied recursively to those dependencies in case 645 # It is applied recursively to those dependencies in case
642 # some of them are linker scripts too. 646 # some of them are linker scripts too.
643 ldscript_scanner = SCons.Scanner.Base( 647 ldscript_scanner = SCons.Scanner.Base(
644 function=ScanLinkerScript, 648 function=ScanLinkerScript,
645 skeys=['.a', '.so', '.pso'], 649 skeys=['.a', '.so', '.pso'],
646 path_function=SCons.Scanner.FindPathDirs('LIBPATH'), 650 path_function=SCons.Scanner.FindPathDirs('LIBPATH'),
647 recursive=True 651 recursive=True
648 ) 652 )
649 env.Append(SCANNERS=ldscript_scanner) 653 env.Append(SCANNERS=ldscript_scanner)
OLDNEW
« no previous file with comments | « pnacl/build.sh ('k') | src/trusted/service_runtime/build.scons » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698