fixed haswell targeting bug

This commit is contained in:
Gregory Becker 2016-01-05 14:47:14 -08:00
parent 1edbaa4e62
commit 751503c434
2 changed files with 13 additions and 5 deletions

View file

@ -17,15 +17,22 @@ def __init__(self):
# Handle the default here so we can check for a key error # Handle the default here so we can check for a key error
if 'CRAY_CPU_TARGET' in os.environ: if 'CRAY_CPU_TARGET' in os.environ:
default = os.environ['CRAY_CPU_TARGET'] self.default = os.environ['CRAY_CPU_TARGET']
# Change the defaults to haswell if we're on an XC40
if self.default == 'haswell':
self.front_end = self.default
self.back_end = self.default
# Back End compiler needs the proper target module loaded.
self.add_target(self.back_end, Target(self.front_end,'craype-'+ self.back_end))
self.add_target(self.default, Target(self.default,'craype-' + self.default))
# Could switch to use modules and fe targets for front end # Could switch to use modules and fe targets for front end
# Currently using compilers by path for front end. # Currently using compilers by path for front end.
self.add_target(self.front_end, Target(self.front_end)) self.add_target(self.front_end, Target(self.front_end))
# Back End compiler needs the proper target module loaded.
self.add_target(self.back_end, Target(self.front_end,'craype-'+ self.back_end))
self.add_target(self.default, Target(self.default,'craype-' + self.default))
# This is kludgy and the order matters when the targets are all haswell
# This is because the last one overwrites the others when they have the
# same name.
@classmethod @classmethod
def detect(self): def detect(self):

View file

@ -206,6 +206,7 @@ def get_compiler(cspec):
return cls(cspec, compiler_paths, mods) return cls(cspec, compiler_paths, mods)
matches = find(compiler_spec) matches = find(compiler_spec)
print matches, 'matches'
return [get_compiler(cspec) for cspec in matches] return [get_compiler(cspec) for cspec in matches]