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

Side by Side Diff: tools/gcmole/gcmole.lua

Issue 935843003: Make gcmole correctly handle 32 bit architectures. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Review Created 5 years, 10 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 | « no previous file | 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 -- Copyright 2011 the V8 project authors. All rights reserved. 1 -- Copyright 2011 the V8 project authors. All rights reserved.
2 -- Redistribution and use in source and binary forms, with or without 2 -- Redistribution and use in source and binary forms, with or without
3 -- modification, are permitted provided that the following conditions are 3 -- modification, are permitted provided that the following conditions are
4 -- met: 4 -- met:
5 -- 5 --
6 -- * Redistributions of source code must retain the above copyright 6 -- * Redistributions of source code must retain the above copyright
7 -- notice, this list of conditions and the following disclaimer. 7 -- notice, this list of conditions and the following disclaimer.
8 -- * Redistributions in binary form must reproduce the above 8 -- * Redistributions in binary form must reproduce the above
9 -- copyright notice, this list of conditions and the following 9 -- copyright notice, this list of conditions and the following
10 -- disclaimer in the documentation and/or other materials provided 10 -- disclaimer in the documentation and/or other materials provided
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 local CLANG_PLUGINS = os.getenv "CLANG_PLUGINS" 83 local CLANG_PLUGINS = os.getenv "CLANG_PLUGINS"
84 84
85 if not CLANG_BIN or CLANG_BIN == "" then 85 if not CLANG_BIN or CLANG_BIN == "" then
86 error "CLANG_BIN not set" 86 error "CLANG_BIN not set"
87 end 87 end
88 88
89 if not CLANG_PLUGINS or CLANG_PLUGINS == "" then 89 if not CLANG_PLUGINS or CLANG_PLUGINS == "" then
90 CLANG_PLUGINS = DIR 90 CLANG_PLUGINS = DIR
91 end 91 end
92 92
93 local function MakeClangCommandLine(plugin, plugin_args, triple, arch_define) 93 local function MakeClangCommandLine(
94 plugin, plugin_args, triple, arch_define, arch_options)
94 if plugin_args then 95 if plugin_args then
95 for i = 1, #plugin_args do 96 for i = 1, #plugin_args do
96 plugin_args[i] = "-Xclang -plugin-arg-" .. plugin 97 plugin_args[i] = "-Xclang -plugin-arg-" .. plugin
97 .. " -Xclang " .. plugin_args[i] 98 .. " -Xclang " .. plugin_args[i]
98 end 99 end
99 plugin_args = " " .. table.concat(plugin_args, " ") 100 plugin_args = " " .. table.concat(plugin_args, " ")
100 end 101 end
101 return CLANG_BIN .. "/clang++ -std=c++11 -c " 102 return CLANG_BIN .. "/clang++ -std=c++11 -c "
102 .. " -Xclang -load -Xclang " .. CLANG_PLUGINS .. "/libgcmole.so" 103 .. " -Xclang -load -Xclang " .. CLANG_PLUGINS .. "/libgcmole.so"
103 .. " -Xclang -plugin -Xclang " .. plugin 104 .. " -Xclang -plugin -Xclang " .. plugin
104 .. (plugin_args or "") 105 .. (plugin_args or "")
105 .. " -Xclang -triple -Xclang " .. triple 106 .. " -Xclang -triple -Xclang " .. triple
106 .. " -D" .. arch_define 107 .. " -D" .. arch_define
107 .. " -DENABLE_DEBUGGER_SUPPORT" 108 .. " -DENABLE_DEBUGGER_SUPPORT"
108 .. " -DV8_I18N_SUPPORT" 109 .. " -DV8_I18N_SUPPORT"
109 .. " -I./" 110 .. " -I./"
110 .. " -Ithird_party/icu/source/common" 111 .. " -Ithird_party/icu/source/common"
111 .. " -Ithird_party/icu/source/i18n" 112 .. " -Ithird_party/icu/source/i18n"
113 .. " " .. arch_options
112 end 114 end
113 115
114 function InvokeClangPluginForEachFile(filenames, cfg, func) 116 function InvokeClangPluginForEachFile(filenames, cfg, func)
115 local cmd_line = MakeClangCommandLine(cfg.plugin, 117 local cmd_line = MakeClangCommandLine(cfg.plugin,
116 cfg.plugin_args, 118 cfg.plugin_args,
117 cfg.triple, 119 cfg.triple,
118 cfg.arch_define) 120 cfg.arch_define,
121 cfg.arch_options)
119 for _, filename in ipairs(filenames) do 122 for _, filename in ipairs(filenames) do
120 log("-- %s", filename) 123 log("-- %s", filename)
121 local action = cmd_line .. " " .. filename .. " 2>&1" 124 local action = cmd_line .. " " .. filename .. " 2>&1"
122 if FLAGS.verbose then print('popen ', action) end 125 if FLAGS.verbose then print('popen ', action) end
123 local pipe = io.popen(action) 126 local pipe = io.popen(action)
124 func(filename, pipe:lines()) 127 func(filename, pipe:lines())
125 local success = pipe:close() 128 local success = pipe:close()
126 if not success then error("Failed to run: " .. action) end 129 if not success then error("Failed to run: " .. action) end
127 end 130 end
128 end 131 end
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 197
195 function mtConfig:extend(t) 198 function mtConfig:extend(t)
196 local e = {} 199 local e = {}
197 for k, v in pairs(self) do e[k] = v end 200 for k, v in pairs(self) do e[k] = v end
198 for k, v in pairs(t) do e[k] = v end 201 for k, v in pairs(t) do e[k] = v end
199 return config(e) 202 return config(e)
200 end 203 end
201 204
202 local ARCHITECTURES = { 205 local ARCHITECTURES = {
203 ia32 = config { triple = "i586-unknown-linux", 206 ia32 = config { triple = "i586-unknown-linux",
204 arch_define = "V8_TARGET_ARCH_IA32" }, 207 arch_define = "V8_TARGET_ARCH_IA32",
208 arch_options = "-m32" },
205 arm = config { triple = "i586-unknown-linux", 209 arm = config { triple = "i586-unknown-linux",
206 arch_define = "V8_TARGET_ARCH_ARM" }, 210 arch_define = "V8_TARGET_ARCH_ARM",
211 arch_options = "-m32" },
207 x64 = config { triple = "x86_64-unknown-linux", 212 x64 = config { triple = "x86_64-unknown-linux",
208 arch_define = "V8_TARGET_ARCH_X64" }, 213 arch_define = "V8_TARGET_ARCH_X64",
214 arch_options = "" },
209 arm64 = config { triple = "x86_64-unknown-linux", 215 arm64 = config { triple = "x86_64-unknown-linux",
210 arch_define = "V8_TARGET_ARCH_ARM64" }, 216 arch_define = "V8_TARGET_ARCH_ARM64",
217 arch_options = "" },
211 } 218 }
212 219
213 ------------------------------------------------------------------------------- 220 -------------------------------------------------------------------------------
214 -- GCSuspects Generation 221 -- GCSuspects Generation
215 222
216 local gc, gc_caused, funcs 223 local gc, gc_caused, funcs
217 224
218 local WHITELIST = { 225 local WHITELIST = {
219 -- The following functions call CEntryStub which is always present. 226 -- The following functions call CEntryStub which is always present.
220 "MacroAssembler.*CallExternalReference", 227 "MacroAssembler.*CallExternalReference",
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 393
387 for _, arch in ipairs(ARCHS) do 394 for _, arch in ipairs(ARCHS) do
388 if not ARCHITECTURES[arch] then 395 if not ARCHITECTURES[arch] then
389 error ("Unknown arch: " .. arch) 396 error ("Unknown arch: " .. arch)
390 end 397 end
391 398
392 errors = SafeCheckCorrectnessForArch(arch, report) or errors 399 errors = SafeCheckCorrectnessForArch(arch, report) or errors
393 end 400 end
394 401
395 os.exit(errors and 1 or 0) 402 os.exit(errors and 1 or 0)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698