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

Unified Diff: native_client_sdk/src/build_tools/make_rules.py

Issue 11280256: [NaCl SDK] Add arm gcc toolchain support to the SDK (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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 side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/build_tools/make_rules.py
diff --git a/native_client_sdk/src/build_tools/make_rules.py b/native_client_sdk/src/build_tools/make_rules.py
index ad5c819ec59108a71f47c03fa1cd6c530d93acd0..6cade31495a1bc11bfb33f0bea49541803d5a981 100755
--- a/native_client_sdk/src/build_tools/make_rules.py
+++ b/native_client_sdk/src/build_tools/make_rules.py
@@ -20,6 +20,15 @@ NEWLIB_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/inclu
NEWLIB_LDFLAGS?=-pthread
"""
+ARM_DEFAULTS = """
+ARM_CC?=$(TC_PATH)/$(OSNAME)_arm_newlib/bin/arm-nacl-gcc -c
+ARM_CXX?=$(TC_PATH)/$(OSNAME)_arm_newlib/bin/arm-nacl-g++ -c
+ARM_LINK?=$(TC_PATH)/$(OSNAME)_arm_newlib/bin/arm-nacl-g++ -Wl,-as-needed
+ARM_LIB?=$(TC_PATH)/$(OSNAME)_arm_newlib/bin/arm-nacl-ar r
+ARM_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/include
+ARM_LDFLAGS?=-pthread
+"""
+
GLIBC_DEFAULTS = """
GLIBC_CC?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-gcc -c
GLIBC_CXX?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -c
@@ -223,6 +232,12 @@ NACL_PNACL = {
'<arch>': 'pnacl',
'<MACH>': '',
}
+NACL_ARM = {
+ '<ARCH>': 'arm',
+ '<MACH>': '',
+ # override the default NACL toolchain
+ 'TOOLSET': 'ARM',
+}
WIN_32 = {
'<arch>': '',
'<ARCH>': 'x86_32',
@@ -232,8 +247,8 @@ WIN_32 = {
BUILD_RULES = {
'newlib' : {
- 'ARCHES': [NACL_X86_32, NACL_X86_64],
- 'DEFS': NEWLIB_DEFAULTS,
+ 'ARCHES': [NACL_X86_32, NACL_X86_64, NACL_ARM],
+ 'DEFS': NEWLIB_DEFAULTS + ARM_DEFAULTS,
'CC' : NACL_CC_RULES,
'CXX' : NACL_CC_RULES,
'NMF' : NMF_RULE,
@@ -297,11 +312,10 @@ class MakeRules(object):
to the appropriate format whenever the toolchain changes.
"""
- def __init__(self, tc, cfg=None, arch=None):
+ def __init__(self, tc):
self.tc = tc
self.project = ''
self.cfg = ''
- self.arch = ''
self.ptype = ''
self.arch_ext = ''
self.defines = []
@@ -311,10 +325,6 @@ class MakeRules(object):
'<TAB>': '\t',
}
self.SetToolchain(tc)
- if cfg:
- self.SetConfig(cfg)
- if arch:
- self.SetArch(arch)
def _BuildList(self, key, items):
pattern = BUILD_RULES[self.tc]['TOOL'][key]
@@ -371,24 +381,24 @@ class MakeRules(object):
def GetObjectList(self):
return '%s_%s_%s%s_O' % (self.project.upper(), self.tc.upper(),
self.cfg.upper(), self.arch_ext)
-
def GetPepperPlugin(self):
plugin = self.Replace(BUILD_RULES[self.tc]['TOOL']['MAIN'])
text = 'PPAPI_<CONFIG>:=$(abspath %s)' % plugin
text += ';application/x-ppapi-%s\n' % self.vars['<config>'].lower()
return self.Replace(text)
-
def SetArch(self, arch):
- self.arch = arch
for key in arch:
self.vars[key] = arch[key]
if '<ARCH>' in self.vars:
- self.arch_ext = "_" + self.arch['<ARCH>']
+ self.arch_ext = "_" + arch['<ARCH>']
self.vars['<libdir>'] = "%s_%s" % (self.tc, self.vars['<ARCH>'])
else:
self.vars['<libdir>'] = self.tc
+ toolset = arch.get('TOOLSET', self.tc.upper())
+ self.SetTools(toolset)
+
def SetConfig(self, config):
self.cfg = config
self.vars['<config>'] = config
@@ -424,10 +434,6 @@ class MakeRules(object):
tcname = 'host'
else:
tcname = tc
- self.vars['<CC>'] = '%s_CC' % TC
- self.vars['<CXX>'] = '%s_CXX' % TC
- self.vars['<LIB>'] = '%s_LIB' % TC
- self.vars['<LINK>'] = '%s_LINK' % TC
self.vars['<tc>'] = tc
self.vars['<tcname>'] = tcname
self.vars['<TC>'] = TC
@@ -435,6 +441,12 @@ class MakeRules(object):
self.SetIncludes(self.includes)
self.SetLibraries(self.libraries)
+ def SetTools(self, toolname):
+ self.vars['<CC>'] = '%s_CC' % toolname
+ self.vars['<CXX>'] = '%s_CXX' % toolname
+ self.vars['<LIB>'] = '%s_LIB' % toolname
+ self.vars['<LINK>'] = '%s_LINK' % toolname
+
def SetVars(self, **kwargs):
# Add other passed in replacements
for key in kwargs:

Powered by Google App Engine
This is Rietveld 408576698