[rtems commit] build: Fix multiple defintion error for i386/pc386

Sebastian Huber sebh at rtems.org
Tue Sep 15 18:07:58 UTC 2020


Module:    rtems
Branch:    master
Commit:    9979042a3a40ab5e59ff06dae0fc229cd8bb0cc9
Changeset: http://git.rtems.org/rtems/commit/?id=9979042a3a40ab5e59ff06dae0fc229cd8bb0cc9

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Sep 15 20:04:51 2020 +0200

build: Fix multiple defintion error for i386/pc386

Make the objcopy an bld.objects() task generator.

Close #4079.

---

 spec/build/bsps/i386/pc386/objsmpstart.yml | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/spec/build/bsps/i386/pc386/objsmpstart.yml b/spec/build/bsps/i386/pc386/objsmpstart.yml
index 0b4a550..dc23022 100644
--- a/spec/build/bsps/i386/pc386/objsmpstart.yml
+++ b/spec/build/bsps/i386/pc386/objsmpstart.yml
@@ -6,6 +6,13 @@ copyrights:
 - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
 cppflags: []
 do-build: |
+  from waflib import TaskGen
+
+  @TaskGen.feature("i386objcopy")
+  @TaskGen.after("process_rule")
+  def process_i386objcopy(self):
+      self.compiled_tasks = self.tasks
+
   startAP = "bsps/i386/pc386/start/startAP"
   startAP_o = startAP + ".o"
   self.asm(bld, bic, startAP + ".S", startAP_o)
@@ -27,10 +34,8 @@ do-build: |
       rule="${OBJCOPY} -I binary -O elf32-i386 -B i386 ${SRC} ${TGT}",
       source=appstart_bin,
       target=appstart_o,
-  )
-  bld.objects(
-      source=appstart_o,
-      target=self.uid,
+      name=self.uid,
+      features="i386objcopy c",
   )
   bic.objects.append(self.uid)
 do-configure: null



More information about the vc mailing list