| Index: site_scons/site_tools/naclsdk.py
 | 
| ===================================================================
 | 
| --- site_scons/site_tools/naclsdk.py	(revision 4818)
 | 
| +++ site_scons/site_tools/naclsdk.py	(working copy)
 | 
| @@ -65,33 +65,24 @@
 | 
|              '32': ['linux_x86'],
 | 
|              '64': ['linux_x86'],
 | 
|          },
 | 
| -        'arm': {
 | 
| -            '32': ['linux_arm-untrusted', 'linux_arm-trusted'],
 | 
| -        },
 | 
|      },
 | 
|      'mac': {
 | 
|          'x86': {
 | 
|              '32': ['mac_x86'],
 | 
|              '64': ['mac_x86'],
 | 
|          },
 | 
| -        'arm': {
 | 
| -            # This entry is not actually correct, but it must be here
 | 
| -            # for launching scons.
 | 
| -            # TODO(pdox): Refactor this table so that pnacl is recognized
 | 
| -            # as an x86 toolchain also, not just an ARM toolchain.
 | 
| -            '32': ['linux_arm-untrusted'],
 | 
| -        },
 | 
| -
 | 
|      },
 | 
|  }
 | 
|  
 | 
| -
 | 
| -
 | 
|  def _PlatformSubdirs(env):
 | 
| -  platform = NACL_CANONICAL_PLATFORM_MAP[env['PLATFORM']]
 | 
| -  arch = env['BUILD_ARCHITECTURE']
 | 
| -  subarch = env['TARGET_SUBARCH']
 | 
| -  name = NACL_PLATFORM_DIR_MAP[platform][arch][subarch]
 | 
| +  if env.Bit('bitcode'):
 | 
| +    import platform
 | 
| +    name = 'pnacl_%s_%s' % (platform.system().lower(), platform.machine())
 | 
| +  else:
 | 
| +    platform = NACL_CANONICAL_PLATFORM_MAP[env['PLATFORM']]
 | 
| +    arch = env['BUILD_ARCHITECTURE']
 | 
| +    subarch = env['TARGET_SUBARCH']
 | 
| +    name = NACL_PLATFORM_DIR_MAP[platform][arch][subarch]
 | 
|    return name
 | 
|  
 | 
|  
 | 
| @@ -123,10 +114,8 @@
 | 
|        return '/usr/local/nacl-sdk'
 | 
|  
 | 
|    elif sdk_mode == 'download':
 | 
| -    platforms = _PlatformSubdirs(env)
 | 
| -    root = os.path.join(env['MAIN_DIR'], 'toolchain', platforms[-1])
 | 
| -    return root
 | 
| -
 | 
| +    tcname = _PlatformSubdirs(env)
 | 
| +    return os.path.join(env['MAIN_DIR'], 'toolchain', tcname)
 | 
|    elif sdk_mode.startswith('custom:'):
 | 
|      return os.path.abspath(sdk_mode[len('custom:'):])
 | 
|  
 | 
| @@ -205,22 +194,22 @@
 | 
|                ASFLAGS=[],
 | 
|                )
 | 
|  
 | 
| -def _SetEnvForPnacl(env, arch):
 | 
| +def _SetEnvForPnacl(env, root):
 | 
| +  arch = env['TARGET_FULLARCH']
 | 
|    assert arch in ['arm', 'x86-32', 'x86-64']
 | 
| -  pnacl_sdk_root = '${MAIN_DIR}/toolchain/linux_arm-untrusted'
 | 
| -  pnacl_sdk_lib = pnacl_sdk_root + '/libs-bitcode'
 | 
| +
 | 
| +  env['PNACL_ROOT'] = root
 | 
| +  pnacl_sdk_lib = '${PNACL_ROOT}/libs-bitcode'
 | 
|    #TODO(robertm): remove NACL_SDK_INCLUDE ASAP
 | 
| -  pnacl_sdk_include = (pnacl_sdk_root +
 | 
| -                       '/arm-newlib/arm-none-linux-gnueabi/include')
 | 
| -  pnacl_sdk_ar = (pnacl_sdk_root + '/bin/pnacl-ar')
 | 
| -  pnacl_sdk_nm = (pnacl_sdk_root + '/bin/pnacl-nm')
 | 
| -  pnacl_sdk_ranlib = (pnacl_sdk_root + '/bin/pnacl-ranlib')
 | 
| +  pnacl_sdk_include = '${PNACL_ROOT}/arm-newlib/arm-none-linux-gnueabi/include'
 | 
| +  pnacl_sdk_ar = '${PNACL_ROOT}/bin/pnacl-ar'
 | 
| +  pnacl_sdk_nm = '${PNACL_ROOT}/bin/pnacl-nm'
 | 
| +  pnacl_sdk_ranlib = '${PNACL_ROOT}/bin/pnacl-ranlib'
 | 
|  
 | 
| -  pnacl_sdk_cc = (pnacl_sdk_root + '/bin/pnacl-gcc')
 | 
| -  pnacl_sdk_cxx = (pnacl_sdk_root + '/bin/pnacl-g++')
 | 
| -  pnacl_sdk_ld =  (pnacl_sdk_root + '/bin/pnacl-ld')
 | 
| -  pnacl_sdk_disass = (pnacl_sdk_root + '/arm-none-linux-gnueabi' +
 | 
| -                  '/bin/llvm-dis')
 | 
| +  pnacl_sdk_cc = '${PNACL_ROOT}/bin/pnacl-gcc'
 | 
| +  pnacl_sdk_cxx = '${PNACL_ROOT}/bin/pnacl-g++'
 | 
| +  pnacl_sdk_ld =  '${PNACL_ROOT}/bin/pnacl-ld'
 | 
| +  pnacl_sdk_disass = '${PNACL_ROOT}/bin/pnacl-dis'
 | 
|    # NOTE: XXX_flags start with space for easy concatenation
 | 
|    pnacl_sdk_cxx_flags = ''
 | 
|    pnacl_sdk_cc_flags = ' -std=gnu99'
 | 
| @@ -237,14 +226,14 @@
 | 
|    if env.Bit('use_sandboxed_translator'):
 | 
|      pnacl_sdk_ld_flags += ' --pnacl-sb'
 | 
|  
 | 
| -  # TODO(pdox): Remove the dependency on the gcc toolchain here.
 | 
| -  nacl_gcc_root = os.path.join('${MAIN_DIR}',
 | 
| -                               'toolchain',
 | 
| -                               _PlatformSubdirs(env)[0])
 | 
| +  # TODO(pdox): Remove PNaCl's dependency on the gcc toolchain here.
 | 
| +  platform = NACL_CANONICAL_PLATFORM_MAP[env['PLATFORM']]
 | 
| +  nnacl_root = os.path.join(env['MAIN_DIR'], 'toolchain', '%s_x86' % platform)
 | 
| +
 | 
|    cc_other_map = {
 | 
|        'arm':    pnacl_sdk_cc + pnacl_sdk_cc_native_flags,
 | 
| -      'x86-32': os.path.join(nacl_gcc_root, 'bin', 'nacl-gcc'),
 | 
| -      'x86-64': os.path.join(nacl_gcc_root, 'bin', 'nacl64-gcc'),
 | 
| +      'x86-32': os.path.join(nnacl_root, 'bin', 'nacl-gcc'),
 | 
| +      'x86-64': os.path.join(nnacl_root, 'bin', 'nacl64-gcc'),
 | 
|        }
 | 
|  
 | 
|    env.Replace(# Replace header and lib paths.
 | 
| @@ -397,7 +386,7 @@
 | 
|    else:
 | 
|      # if bitcode=1 use pnacl toolchain
 | 
|      if env.Bit('bitcode'):
 | 
| -      _SetEnvForPnacl(env, env['TARGET_FULLARCH'])
 | 
| +      _SetEnvForPnacl(env, root)
 | 
|      elif env.Bit('target_x86'):
 | 
|        _SetEnvForX86Sdk(env, root)
 | 
|      else:
 | 
| 
 |