52c52
< build_env = dict([(opt, env[opt]) for opt in export_vars])
---
> build_env = [(opt, env[opt]) for opt in export_vars]
268a269,270
> SimObject.fixed = True
>
286c288
< if fullname == 'defines':
---
> if fullname == 'm5.defines':
296c298
< if source is not None and exists(source.snode.abspath):
---
> if source is not None and fullname.startswith('m5.objects'):
311,312c313,314
< if fullname == 'defines':
< mod.__dict__['buildEnv'] = build_env
---
> if fullname == 'm5.defines':
> mod.__dict__['buildEnv'] = m5.util.SmartDict(build_env)
323a326,331
> import m5.SimObject
> import m5.params
>
> m5.SimObject.clear()
> m5.params.clear()
>
327d334
< SimObject.fixed = True
331,332d337
< import m5
<
348a354,359
> # load the ptype attribute now because it depends on the
> # current version of SimObject.allClasses, but when scons
> # actually uses the value, all versions of
> # SimObject.allClasses will have been loaded
> param.ptype
>
368c379
< # build_env flags.
---
> # buildEnv flags.
370d380
< f = file(str(target[0]), 'w')
372,374d381
< print >>f, "buildEnv = %s" % build_env
< print >>f, "hgRev = '%s'" % hg_info
< f.close()
375a383,397
> code = m5.util.code_formatter()
> code("""
> import m5.internal
> import m5.util
>
> buildEnv = m5.util.SmartDict($build_env)
> hgRev = '$hg_info'
>
> compileDate = m5.internal.core.compileDate
> for k,v in m5.internal.core.__dict__.iteritems():
> if k.startswith('flag_'):
> setattr(buildEnv, k[5:], v)
> """)
> code.write(str(target[0]))
>