Module: xenomai-forge
Branch: master
Commit: 2f84b5f6157d31de0ec60a69404aeb2924ab6fa8
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=2f84b5f6157d31de0ec60a69404aeb2924ab6fa8

Author: Philippe Gerum <r...@xenomai.org>
Date:   Thu Nov 10 18:49:55 2011 +0100

cobalt/kernel: remove support for modular build

Rationale: Xenomai's Cobalt in-kernel footprints drastically shrunk to
only include the nucleus, the POSIX/cobalt and RTDM skins. On armv6
for instance, this typically amounts to less than 150Kb, most of it
from the data/bss sections. In the past, most people tended to build
Xenomai 2.x statically into the kernel already, simply because:

- dealing with modules during system updates is error-prone unless
  versioning is enabled, which is not particularly space-efficient.

- matching virtual addresses from kernel message logs to code from
  disassembled vmlinux images is a no-brainer (e.g. during the debug
  phase, after a BUG() assertion triggered).

- enabling the module machinery in the kernel consumes a significant
  amount of RAM. So space-conscious setups will likely avoid them in
  any case.

On the other hand, modules do not bring any real upside. Typically,
the perceived ability to reinit an application system by virtue of
unloading modules then pushing them again is a fairly red herring: if
something went bad in the module space, then the whole kernel is
likely to have been affected, so this operation is pointless anyway.

This patch removes the ability to build the Xenomai core in a modular
fashion, only retaining the static build for the nucleus-cobalt-RTDM
triplet which constitutes the Cobalt core. However, RTDM drivers can
still be built as modules though.

---

 scripts/Kconfig.frag      |    5 +----
 scripts/prepare-kernel.sh |    4 ++--
 scripts/prepare-patch.sh  |    2 +-
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/scripts/Kconfig.frag b/scripts/Kconfig.frag
index 76497d2..bbc9cbe 100644
--- a/scripts/Kconfig.frag
+++ b/scripts/Kconfig.frag
@@ -1,11 +1,8 @@
-config XENOMAI_COBALT
-       bool
 
 config XENOMAI
        depends on (X86_TSC || !X86) && (!HPET_TIMER || !X86 || X86_LOCAL_APIC)
-       tristate "Xenomai"
+       bool "Xenomai"
         select IPIPE
-        select XENOMAI_COBALT
        default y
         help
           Xenomai is a real-time extension to the Linux kernel. Note
diff --git a/scripts/prepare-kernel.sh b/scripts/prepare-kernel.sh
index 0e5b66e..b39808e 100755
--- a/scripts/prepare-kernel.sh
+++ b/scripts/prepare-kernel.sh
@@ -400,8 +400,8 @@ case $linux_VERSION.$linux_PATCHLEVEL in
             patch_append init/Kconfig
     fi
 
-    if ! grep -q CONFIG_XENOMAI_COBALT $linux_tree/arch/$linux_arch/Makefile; 
then
-       p="core-\$(CONFIG_XENOMAI_COBALT)       += kernel/xenomai/hal/ 
arch/$linux_arch/xenomai/"
+    if ! grep -q CONFIG_XENOMAI $linux_tree/arch/$linux_arch/Makefile; then
+       p="core-\$(CONFIG_XENOMAI)      += kernel/xenomai/hal/ 
arch/$linux_arch/xenomai/"
        echo $p | patch_append arch/$linux_arch/Makefile
     fi
 
diff --git a/scripts/prepare-patch.sh b/scripts/prepare-patch.sh
index fd299ae..fc7c0b1 100755
--- a/scripts/prepare-patch.sh
+++ b/scripts/prepare-patch.sh
@@ -113,7 +113,7 @@ for linux_arch in $supported_arch ; do
     patch_link r m kernel/cobalt/arch/$base_arch arch/$linux_arch/xenomai
     patch_link r n include/asm-$base_arch arch/$linux_arch/include/asm/xenomai
 
-    p="+core-\$(CONFIG_XENOMAI_COBALT) += arch/$linux_arch/xenomai/"
+    p="+core-\$(CONFIG_XENOMAI)        += arch/$linux_arch/xenomai/"
     echo $p | patch_append arch/$linux_arch/Makefile
     diff_addons
 done


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to