[PATCH 2/3] i386: Update build system

Jan Sommer jan.sommer at dlr.de
Fri Mar 6 10:08:45 UTC 2020


- Include update FreeBSD files in libbsd.py
- Introduce path-mappings in waf_libsd.py and libbsd.py for include path
fixes
---
 libbsd.py     | 14 ++++++++++++--
 waf_libbsd.py | 13 +++++++++++--
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/libbsd.py b/libbsd.py
index d791efe4..85af36e2 100644
--- a/libbsd.py
+++ b/libbsd.py
@@ -90,6 +90,14 @@ _defaults = {
     'cpu-include-paths': ['rtemsbsd/@CPU@/include',
                           'freebsd/sys/@CPU@/include'],
 
+    #
+    # Map paths based on RTEMS naming to FreeBSD naming.
+    #
+    'path-mappings': [     # (source, targets)
+    # i386
+    ('freebsd/sys/i386/include', ['freebsd/sys/x86/include', 'freebsd/sys/i386/include']),
+    ],
+
     # The path where headers will be copied during build.
     'build-include-path': ['build-include'],
 
@@ -1425,6 +1433,7 @@ class dev_nic(builder.Module):
                 'sys/i386/include/specialreg.h',
                 'sys/i386/include/md_var.h',
                 'sys/i386/include/intr_machdep.h',
+                'sys/x86/include/intr_machdep.h',
                 'sys/i386/include/cpufunc.h',
                 'sys/mips/include/cpufunc.h',
                 'sys/mips/include/cpuregs.h',
@@ -2601,7 +2610,8 @@ class pci(builder.Module):
         self.addCPUDependentFreeBSDHeaderFiles(
             [
                 'sys/i386/include/_bus.h',
-                'sys/i386/include/legacyvar.h',
+#                'sys/i386/include/bus.h',
+                'sys/x86/include/legacyvar.h',
                 'sys/x86/include/bus.h',
                 'sys/x86/include/pci_cfgreg.h',
             ]
@@ -2609,7 +2619,7 @@ class pci(builder.Module):
         self.addCPUDependentFreeBSDSourceFiles(
             [ 'i386' ],
             [
-                'sys/i386/i386/legacy.c',
+                'sys/x86/x86/legacy.c',
                 'sys/x86/pci/pci_bus.c',
             ],
             mm.generator['source']()
diff --git a/waf_libbsd.py b/waf_libbsd.py
index 3a14541a..a98ee3c2 100644
--- a/waf_libbsd.py
+++ b/waf_libbsd.py
@@ -210,8 +210,6 @@ class Builder(builder.ModuleManager):
         buildinclude = 'build-include'
         if 'cpu-include-paths' in config:
             cpu = bld.get_env()['RTEMS_ARCH']
-            if cpu == "i386":
-                cpu = 'x86'
             for i in config['cpu-include-paths']:
                 includes += [i.replace('@CPU@', cpu)]
         if 'include-paths' in config:
@@ -222,6 +220,17 @@ class Builder(builder.ModuleManager):
                 buildinclude = buildinclude[0]
         includes += [buildinclude]
 
+        #
+        # Path mappings
+        #
+        if 'path-mappings' in config:
+            for source, target in config['path-mappings']:
+                if source in includes:
+                    target = [target] if isinstance(target, str) else target
+                    i = includes.index(source)
+                    includes.remove(source)
+                    includes[i:i] = target
+
         #
         # Collect the libbsd uses
         #
-- 
2.17.1



More information about the devel mailing list