Yen-lin Lai has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/58409 )

Change subject: scons: Allow sources and libs called multiple times
......................................................................

scons: Allow sources and libs called multiple times

In Python, "+=" operator for list acts more like append and list assign
doesn't make a copy. This will cause unexpected append to the orignal
list. Since we have multiple env to "declare", these functions will be
called multiple times and could wrongly append duplicated entries in
later calls.

Make a copy before appending the entries from filter to avoid this
problem.

Change-Id: I144d5054e4d93191ebc94b93291ff9a3f8a6c429
---
M src/SConscript
1 file changed, 21 insertions(+), 2 deletions(-)



diff --git a/src/SConscript b/src/SConscript
index d55520b..746d3f1 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -38,6 +38,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 import collections
+import copy
 import distutils.spawn
 import itertools
 import os
@@ -329,13 +330,13 @@
         self.dir = Dir('.')

     def sources(self, env):
-        srcs = self.srcs
+        srcs = copy.copy(self.srcs)
         for f in self.filters:
             srcs += Source.all.apply_filter(env, f)
         return srcs

     def libs(self, env):
-        libs = self.sourceLibs
+        libs = copy.copy(self.sourceLibs)
         for f in self.filters:
             libs += SourceLib.all.apply_filter(env, f)
         return libs

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/58409
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I144d5054e4d93191ebc94b93291ff9a3f8a6c429
Gerrit-Change-Number: 58409
Gerrit-PatchSet: 1
Gerrit-Owner: Yen-lin Lai <yenlin...@google.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to