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

Side by Side Diff: tests_lit/lit.cfg

Issue 1085733002: Subzero: Auto-detect cmake versus autoconf LLVM build. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix the sb build libs Created 5 years, 8 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 | « pydir/run-pnacl-sz.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # -*- Python -*- 1 # -*- Python -*-
2 # Taken from utils/lit/tests in the LLVM tree and hacked together to support 2 # Taken from utils/lit/tests in the LLVM tree and hacked together to support
3 # our tests. 3 # our tests.
4 # 4 #
5 # Note: This configuration has simple commands to run Subzero's translator. 5 # Note: This configuration has simple commands to run Subzero's translator.
6 # They have the form %X2i (i.e. %p2i, %l2i, and %lc2i) where X is defined 6 # They have the form %X2i (i.e. %p2i, %l2i, and %lc2i) where X is defined
7 # as follows: 7 # as follows:
8 # 8 #
9 # p : Run Subzero's translator, building ICE from PNaCl bitcode directly. 9 # p : Run Subzero's translator, building ICE from PNaCl bitcode directly.
10 # l : Run Subzero's translator, converting the .ll file to a PNaCl bitcode 10 # l : Run Subzero's translator, converting the .ll file to a PNaCl bitcode
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 config.test_exec_root = config.test_source_root 55 config.test_exec_root = config.test_source_root
56 config.target_triple = '(unused)' 56 config.target_triple = '(unused)'
57 57
58 src_root = os.path.join(FindBaseNaCl(), 'toolchain_build/src/subzero') 58 src_root = os.path.join(FindBaseNaCl(), 'toolchain_build/src/subzero')
59 bin_root = src_root 59 bin_root = src_root
60 config.substitutions.append(('%{src_root}', src_root)) 60 config.substitutions.append(('%{src_root}', src_root))
61 config.substitutions.append(('%{python}', sys.executable)) 61 config.substitutions.append(('%{python}', sys.executable))
62 62
63 pydir = os.path.join(bin_root, 'pydir') 63 pydir = os.path.join(bin_root, 'pydir')
64 64
65 # Finding LLVM binary tools. Tools used in the tests must be listed in 65 # Finding PNaCl binary tools. Tools used in the tests must be listed in the
66 # the llvmbintools list or binutilsbintools. 66 # pnaclbintools list.
67 llvmbinpath = os.path.abspath(os.environ.get('LLVM_BIN_PATH')) 67 pnaclbinpath = os.path.abspath(os.environ.get('PNACL_BIN_PATH'))
68
69 # Find binutils tools. This is used for objdump.
70 binutilsbinpath = os.path.abspath(os.environ.get('BINUTILS_BIN_PATH'))
71 68
72 # Define the location of the pnacl-sz tool. 69 # Define the location of the pnacl-sz tool.
73 pnacl_sz_tool = os.path.join(bin_root, 'pnacl-sz') 70 pnacl_sz_tool = os.path.join(bin_root, 'pnacl-sz')
74 pnacl_sz_atts = shellcmd(' '.join([pnacl_sz_tool, '--build-atts']), 71 pnacl_sz_atts = shellcmd(' '.join([pnacl_sz_tool, '--build-atts']),
75 echo=False).split() 72 echo=False).split()
76 73
77 # Add build attributes of pnacl-sz tool to the set of available features. 74 # Add build attributes of pnacl-sz tool to the set of available features.
78 config.available_features.update(pnacl_sz_atts) 75 config.available_features.update(pnacl_sz_atts)
79 76
80 def if_cond_flag(Value): 77 def if_cond_flag(Value):
81 return '--cond=true' if Value else '--cond=false' 78 return '--cond=true' if Value else '--cond=false'
82 79
83 # shell conditional commands. 80 # shell conditional commands.
84 if_atts = [os.path.join(pydir, 'if.py')] 81 if_atts = [os.path.join(pydir, 'if.py')]
85 if_atts_cmd = if_atts + ['--have=' + att for att in pnacl_sz_atts] 82 if_atts_cmd = if_atts + ['--have=' + att for att in pnacl_sz_atts]
86 ifl2i_atts_cmd = if_atts + [if_cond_flag('allow_llvm_ir' in pnacl_sz_atts), 83 ifl2i_atts_cmd = if_atts + [if_cond_flag('allow_llvm_ir' in pnacl_sz_atts),
87 '--command'] 84 '--command']
88 iflc2i_atts_cmd = if_atts + [if_cond_flag('allow_llvm_ir_as_input' 85 iflc2i_atts_cmd = if_atts + [if_cond_flag('allow_llvm_ir_as_input'
89 in pnacl_sz_atts), '--command'] 86 in pnacl_sz_atts), '--command']
90 87
91 # Base command for running pnacl-sz 88 # Base command for running pnacl-sz
92 pnacl_sz_cmd = [os.path.join(pydir, 'run-pnacl-sz.py'), 89 pnacl_sz_cmd = [os.path.join(pydir, 'run-pnacl-sz.py'),
93 '--pnacl-sz', pnacl_sz_tool, 90 '--pnacl-sz', pnacl_sz_tool,
94 '--llvm-bin-path', llvmbinpath, 91 '--pnacl-bin-path', pnaclbinpath]
95 '--binutils-bin-path', binutilsbinpath]
96 92
97 # Run commands only if corresponding build attributes apply, including 93 # Run commands only if corresponding build attributes apply, including
98 # for each compiler setup. 94 # for each compiler setup.
99 config.substitutions.append(('%ifp', ' ')) 95 config.substitutions.append(('%ifp', ' '))
100 config.substitutions.append(('%iflc', ' '.join(iflc2i_atts_cmd))) 96 config.substitutions.append(('%iflc', ' '.join(iflc2i_atts_cmd)))
101 config.substitutions.append(('%ifl', ' '.join(ifl2i_atts_cmd))) 97 config.substitutions.append(('%ifl', ' '.join(ifl2i_atts_cmd)))
102 config.substitutions.append(('%if', ' '.join(if_atts_cmd))) 98 config.substitutions.append(('%if', ' '.join(if_atts_cmd)))
103 99
104 # Translate LLVM source for each compiler setup. 100 # Translate LLVM source for each compiler setup.
105 config.substitutions.append(('%p2i', ' '.join(pnacl_sz_cmd))) 101 config.substitutions.append(('%p2i', ' '.join(pnacl_sz_cmd)))
106 config.substitutions.append(('%l2i', ' '.join(ifl2i_atts_cmd + pnacl_sz_cmd 102 config.substitutions.append(('%l2i', ' '.join(ifl2i_atts_cmd + pnacl_sz_cmd
107 + ['--llvm']))) 103 + ['--llvm'])))
108 config.substitutions.append(('%lc2i', ' '.join(iflc2i_atts_cmd + pnacl_sz_cmd 104 config.substitutions.append(('%lc2i', ' '.join(iflc2i_atts_cmd + pnacl_sz_cmd
109 + ['--llvm-source']))) 105 + ['--llvm-source'])))
110 106
111 config.substitutions.append(('%pnacl_sz', pnacl_sz_tool)) 107 config.substitutions.append(('%pnacl_sz', pnacl_sz_tool))
112 108
113 llvmbintools = [r"\bFileCheck\b", 109 pnaclbintools = [r"\bFileCheck\b",
114 r"\bllvm-as\b", 110 r"\ble32-nacl-objdump\b",
115 r"\bllvm-mc\b", 111 r"\bllvm-as\b",
116 r"\bllvm-readobj\b", 112 r"\bllvm-mc\b",
117 r"\bnot\b", 113 r"\bllvm-readobj\b",
118 r"\bpnacl-freeze\b", 114 r"\bnot\b",
119 r"\bpnacl-bcdis\b"] 115 r"\bpnacl-freeze\b",
116 r"\bpnacl-bcdis\b"]
120 117
121 for tool in llvmbintools: 118 for tool in pnaclbintools:
122 # The re.sub() line is adapted from one of LLVM's lit.cfg files. 119 # The re.sub() line is adapted from one of LLVM's lit.cfg files.
123 # Extract the tool name from the pattern. This relies on the tool 120 # Extract the tool name from the pattern. This relies on the tool
124 # name being surrounded by \b word match operators. If the 121 # name being surrounded by \b word match operators. If the
125 # pattern starts with "| ", include it in the string to be 122 # pattern starts with "| ", include it in the string to be
126 # substituted. 123 # substituted.
127 substitution = re.sub(r"^(\\)?((\| )?)\W+b([0-9A-Za-z-_]+)\\b\W*$", 124 substitution = re.sub(r"^(\\)?((\| )?)\W+b([0-9A-Za-z-_]+)\\b\W*$",
128 r"\2" + llvmbinpath + "/" + r"\4", 125 r"\2" + pnaclbinpath + "/" + r"\4",
129 tool) 126 tool)
130 config.substitutions.append((tool, substitution)) 127 config.substitutions.append((tool, substitution))
131 128
132 binutilsbintools = [r"\ble32-nacl-objdump\b",]
133
134 for tool in binutilsbintools:
135 # The re.sub() line is adapted from one of LLVM's lit.cfg files.
136 # Similar to the llvmbintools.
137 substitution = re.sub(r"^(\\)?((\| )?)\W+b([0-9A-Za-z-_]+)\\b\W*$",
138 r"\2" + binutilsbinpath + "/" + r"\4",
139 tool)
140 config.substitutions.append((tool, substitution))
141
142 # Add a feature to detect the Python version. 129 # Add a feature to detect the Python version.
143 config.available_features.add("python%d.%d" % (sys.version_info[0], 130 config.available_features.add("python%d.%d" % (sys.version_info[0],
144 sys.version_info[1])) 131 sys.version_info[1]))
145 132
146 # Debugging output 133 # Debugging output
147 def dbg(s): 134 def dbg(s):
148 print '[DBG] %s' % s 135 print '[DBG] %s' % s
149 136
150 dbg('bin_root = %s' % bin_root) 137 dbg('bin_root = %s' % bin_root)
151 dbg('llvmbinpath = %s' % llvmbinpath) 138 dbg('pnaclbinpath = %s' % pnaclbinpath)
152 dbg('binutilsbinpath = %s' % binutilsbinpath)
153 dbg("Build attributes = %s" % pnacl_sz_atts) 139 dbg("Build attributes = %s" % pnacl_sz_atts)
OLDNEW
« no previous file with comments | « pydir/run-pnacl-sz.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698