On 17/09/2020 08:21, Chris Johns wrote:

On 17/9/20 4:11 pm, Sebastian Huber wrote:
On 17/09/2020 08:07, Chris Johns wrote:

On 17/9/20 3:57 pm, Sebastian Huber wrote:
Add explicit asm target feature.  Add a build start file node list and
use it as a test program dependency.

Close #3846.
Close #4080.
---
   wscript | 41 ++++++++++++++++++++++++++++++++++++-----
   1 file changed, 36 insertions(+), 5 deletions(-)

diff --git a/wscript b/wscript
index 2e42918ebb..d47f25c094 100755
--- a/wscript
+++ b/wscript
@@ -40,6 +40,8 @@ try:
   except:
       import ConfigParser as configparser
   +from waflib.TaskGen import after, before_method, feature
+
   is_windows_host = os.name == "nt" or sys.platform in ["msys", "cygwin"]
   default_prefix = "/opt/rtems/6"
   compilers = ["gcc", "clang"]
@@ -149,6 +151,31 @@ def _is_enabled(enabled, enabled_by):
       return enabled_by in enabled
     +def _explicit_asm_target(self, node):
+    task = self.create_task(
+        "asm", node, self.bld.bldnode.make_node(self.target)
+    )
+    try:
+        self.compiled_tasks.append(task)
+    except AttributeError:
+        self.compiled_tasks = [task]
+    return task
+
+
+@feature("explicit_asm_target")
explicit_asm?
asm_explicit_target? The target is the important thing here.
Hmmm ... oh .. it is a dependency of a test to rebuild a test. Is this because
the test is not directly dependent on the start object file self?

Unfortunately the fix for #3846 and #4080 needs to be combined, because the fix for #3846 requires the removal of "before=["cstlib"]". This patch fixes two issues.

1. The tracking of start file dependencies.

2. Reflect that executables depend on the start files.

We need a start.o file in the right path, and not for example a start.S.17.o file in some path. This part is addressed by the "explicit_asm_target" feature.

This:

@after("apply_link")
@feature("cprogram", "cxxprogram")
def process_start_files(self):
    if getattr(self, "start_files", False):
        self.link_task.dep_nodes.extend(self.bld.start_files)

addresses 2.

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to