Module: xenomai-forge
Branch: master
Commit: 2f84b5f6157d31de0ec60a69404aeb2924ab6fa8

Author: Philippe Gerum <>
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/ |    4 ++--
 scripts/  |    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 @@
-       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
           Xenomai is a real-time extension to the Linux kernel. Note
diff --git a/scripts/ b/scripts/
index 0e5b66e..b39808e 100755
--- a/scripts/
+++ b/scripts/
@@ -400,8 +400,8 @@ case $linux_VERSION.$linux_PATCHLEVEL in
             patch_append init/Kconfig
-    if ! grep -q CONFIG_XENOMAI_COBALT $linux_tree/arch/$linux_arch/Makefile; 
-       p="core-\$(CONFIG_XENOMAI_COBALT)       += kernel/xenomai/hal/ 
+    if ! grep -q CONFIG_XENOMAI $linux_tree/arch/$linux_arch/Makefile; then
+       p="core-\$(CONFIG_XENOMAI)      += kernel/xenomai/hal/ 
        echo $p | patch_append arch/$linux_arch/Makefile
diff --git a/scripts/ b/scripts/
index fd299ae..fc7c0b1 100755
--- a/scripts/
+++ b/scripts/
@@ -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

Xenomai-git mailing list

Reply via email to