Index: builder.py
===================================================================
--- builder.py	(revision fa4ec51293767a689f6d92a067ccc3e77f3f57f8)
+++ builder.py	(revision 23d6e507d63713c6e0162751f8602bd9b8d6e6d1)
@@ -51,4 +51,5 @@
 LIBBSD_DIR = "."
 FreeBSD_DIR = "freebsd-org"
+Linux_DIR = "linux-org"
 verboseLevel = 0
 isDryRun = False
@@ -545,7 +546,20 @@
         return os.path.join(prefix, 'rtemsbsd', path)
 
+class LinuxPathComposer(PathComposer):
+    def composeOriginPath(self, path):
+        return os.path.join(Linux_DIR, path)
+
+    def composeLibBSDPath(self, path, prefix):
+        return os.path.join(prefix, 'linux', path)
+
 class CPUDependentFreeBSDPathComposer(FreeBSDPathComposer):
     def composeLibBSDPath(self, path, prefix):
         path = super(CPUDependentFreeBSDPathComposer, self).composeLibBSDPath(path, prefix)
+        path = mapCPUDependentPath(path)
+        return path
+
+class CPUDependentLinuxPathComposer(LinuxPathComposer):
+    def composeLibBSDPath(self, path, prefix):
+        path = super(CPUDependentLinuxPathComposer, self).composeLibBSDPath(path, prefix)
         path = mapCPUDependentPath(path)
         return path
@@ -662,7 +676,17 @@
                                     NoConverter(), NoConverter(), assertHeaderFile)
 
+    def addLinuxHeaderFiles(self, files):
+        self.files += self.addFiles(files,
+                                    LinuxPathComposer(), FromFreeBSDToRTEMSHeaderConverter(),
+                                    FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
+
     def addCPUDependentFreeBSDHeaderFiles(self, files):
         self.files += self.addFiles(files,
                                     CPUDependentFreeBSDPathComposer(), FromFreeBSDToRTEMSHeaderConverter(),
+                                    FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
+
+    def addCPUDependentLinuxHeaderFiles(self, files):
+        self.files += self.addFiles(files,
+                                    CPUDependentLinuxPathComposer(), FromFreeBSDToRTEMSHeaderConverter(),
                                     FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
 
@@ -696,4 +720,10 @@
                                     RTEMSPathComposer(), NoConverter(), NoConverter(),
                                     assertSourceFile, sourceFileFragmentComposer)
+
+    def addLinuxSourceFiles(self, files, sourceFileFragmentComposer):
+        self.files += self.addFiles(files,
+                                    LinuxPathComposer(), FromFreeBSDToRTEMSSourceConverter(),
+                                    FromRTEMSToFreeBSDSourceConverter(), assertSourceFile,
+                                    sourceFileFragmentComposer)
 
     def addCPUDependentFreeBSDSourceFiles(self, cpus, files, sourceFileFragmentComposer):
@@ -706,4 +736,13 @@
                               sourceFileFragmentComposer)
 
+    def addCPUDependentLinuxSourceFiles(self, cpus, files, sourceFileFragmentComposer):
+        for cpu in cpus:
+            self.initCPUDependencies(cpu)
+            self.cpuDependentSourceFiles[cpu] += \
+                self.addFiles(files,
+                              CPUDependentLinuxPathComposer(), FromFreeBSDToRTEMSSourceConverter(),
+                              FromRTEMSToFreeBSDSourceConverter(), assertSourceFile,
+                              sourceFileFragmentComposer)
+
     def addTest(self, testFragementComposer):
         self.files += [File(testFragementComposer.testName,
Index: freebsd-to-rtems.py
===================================================================
--- freebsd-to-rtems.py	(revision fa4ec51293767a689f6d92a067ccc3e77f3f57f8)
+++ freebsd-to-rtems.py	(revision 23d6e507d63713c6e0162751f8602bd9b8d6e6d1)
@@ -123,4 +123,5 @@
 print("LibBSD Directory:            %s" % (builder.LIBBSD_DIR))
 print("FreeBSD Directory:           %s" % (builder.FreeBSD_DIR))
+print("Linux Directory:             %s" % (builder.Linux_DIR))
 print("Direction:                   %s" % (("reverse", "forward")[isForward]))
 
@@ -138,8 +139,9 @@
 wasDirectorySet( "LibBSD", builder.LIBBSD_DIR )
 wasDirectorySet( "FreeBSD", builder.FreeBSD_DIR )
+wasDirectorySet( "Linux", builder.Linux_DIR )
 
 # Are we generating or reverting?
 if isForward == True:
-    print("Forward from", builder.FreeBSD_DIR, "into", builder.LIBBSD_DIR)
+    print("Forward from", builder.FreeBSD_DIR, "and", builder.Linux_DIR, "into", builder.LIBBSD_DIR)
 else:
     print("Reverting from", builder.LIBBSD_DIR)
