Hi Gabe,

I can definitely see the reasoning behind this. I think revisiting this
is a good idea. However, I'm a bit reluctant since it affects a lot of
existing build scripts and test infrastructure.

Another benefit that you didn't mention is that this avoid some annoying
"issues" when the build system runs tests. We currently run tests using
the build/ARM/tests/opt/** targets. This would all become consistent
with the rest of the build system.

Another change we should consider making while we are doing this is to
swap architecture and optimisation levels. The opt Arm target would then
become build/opt/ARM/gem5.opt. That would be a lot nicer for code (e.g.,
libraries) that we share between different targets. Ideally, we should
only rebuild the src/cpu and src/arch/ directories when switching
targets, but that's a more ambitious goal.

Cheers,
Andreas


On 21/11/2017 05:28, Gabe Black wrote:
Hi folks. I've been digging around in the scons files, and I was thinking
about the possibility of treating opt, fast, debug, etc., as actual
variants from the scons perspective instead of having them all live in the
same directory but with different extensions. I think the biggest
difference this might make is that, for instance, the opt version of the
gem5 X86 binary would be build/X86/opt/gem5 and not build/X86/gem5.opt.

There wouldn't be any amazing direct benefit from doing things that way
that I can see at the moment, but it would make our build structure fit a
little more naturally into the way scons wants to do things. It might also
make it more feasible to use real scons builders for things like Source,
etc., instead of wrapper classes. Another benefit would be if you wanted to
compile all the files in a particular part of the source tree (like the
unit tests, although those shouldn't be lumped together anyway), you could
just give scons the path and it wouldn't build all possible versions of the
sources in that directory, just the one in the variant you gave it. Using
the unit tests as an example, you could run 'scons build/ARM/opt/unittest'
and get the opt versions of all the unit tests.

Any objections?

Gabe
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to