+ argv.push_back(arg);
+
+ builder.get_logger().log("auxcommands", "Running %s", join(argv.begin(), argv.end()));
+ try
+ {
+ string version_str = strip(ExternalTask::run_and_capture_output(argv));
+
+ vector<string> version_parts = split(version_str, '.');
+ version = 0;
+ for(unsigned i=0; (i<3 && i<version_parts.size()); ++i)
+ version |= lexical_cast<unsigned>(version_parts[i])<<(16-8*i);
+ }
+ catch(const runtime_error &)
+ { }
+}
+
+Task *GnuCompiler::_run(const ObjectFile &object)
+{
+ const GnuCompiler &tool = dynamic_cast<const GnuCompiler &>(*object.get_tool());
+ const Architecture &arch = *tool.get_architecture();
+
+ ExternalTask::Arguments argv;
+ argv.push_back(tool.get_executable()->get_path().str());