[PATCH] wscript: Allow start code to be written in C

Kinsey Moore kinsey.moore at oarcorp.com
Mon Apr 18 17:32:36 UTC 2022


Start code for most platforms requires hand-coded ASM but some can be
bootstrapped entirely in C, especially for paravirtualized platforms.
This change allows start code to be written in C where possible instead
of requiring architecture-specific ASM to bridge to C.
---
 wscript | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/wscript b/wscript
index 0291b6025a..59ab96c43d 100755
--- a/wscript
+++ b/wscript
@@ -561,7 +561,11 @@ class StartFileItem(Item):
         super(StartFileItem, self).__init__(uid, data)
 
     def do_build(self, bld, bic):
-        tgt = self.asm(bld, bic, self.data["source"], self.get(bld, "target"))
+        source = self.data["source"]
+        if os.path.splitext(source[0])[1] == ".S":
+            tgt = self.asm(bld, bic, source, self.get(bld, "target"))
+        else:
+            tgt = self.cc(bld, bic, source, self.get(bld, "target"))
         node = bld.bldnode.make_node(tgt)
         try:
             bld.start_files.append(node)
-- 
2.30.2



More information about the devel mailing list