提交 327a88b3 authored 作者: James Bergstra's avatar James Bergstra

Adding new configuration variable: gcc.cxxflags which is a string passed

straight through to the compiler call. It affects the Op signature if it is not empty.
上级 254b8e2e
...@@ -30,6 +30,13 @@ from compilelock import get_lock, release_lock ...@@ -30,6 +30,13 @@ from compilelock import get_lock, release_lock
import cmodule import cmodule
from theano.configparser import TheanoConfigParser, AddConfigVar, EnumStr, StrParam, IntParam, FloatParam, BoolParam
AddConfigVar('gcc.cxxflags',
"Extra compiler flags for gcc",
StrParam(""))
import logging import logging
_logger=logging.getLogger("theano.gof.cc") _logger=logging.getLogger("theano.gof.cc")
def info(*args): def info(*args):
...@@ -840,6 +847,12 @@ class CLinker(link.Linker): ...@@ -840,6 +847,12 @@ class CLinker(link.Linker):
if compile_args is not None: sig.append(tuple(compile_args)) if compile_args is not None: sig.append(tuple(compile_args))
if libraries is not None: sig.append(tuple(libraries)) if libraries is not None: sig.append(tuple(libraries))
# technically this should only be appended for gcc-compiled Ops
# and the flags of other compilers should be inserted here... but it's not clear how to
# do this.
if config.gcc.cxxflags:
sig.append(config.gcc.cxxflags)
def in_sig(i, topological_pos, i_idx): def in_sig(i, topological_pos, i_idx):
# assert that every input to every node is one of' # assert that every input to every node is one of'
# - an env input # - an env input
......
...@@ -699,6 +699,7 @@ def gcc_module_compile_str(module_name, src_code, location=None, include_dirs=[] ...@@ -699,6 +699,7 @@ def gcc_module_compile_str(module_name, src_code, location=None, include_dirs=[]
cmd.extend(p for p in preargs if not p.startswith('-O')) cmd.extend(p for p in preargs if not p.startswith('-O'))
else: else:
cmd.extend(preargs) cmd.extend(preargs)
cmd.extend(config.gcc.cxxflags.split(' '))
cmd.extend('-I%s'%idir for idir in include_dirs) cmd.extend('-I%s'%idir for idir in include_dirs)
cmd.extend(['-o',lib_filename]) cmd.extend(['-o',lib_filename])
cmd.append(cppfilename) cmd.append(cppfilename)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论