Hi Jan,

attached you will find a first version of the kernel CFLAGS capturing trick for Xenomai 2.1 and Linux 2.4. It works fine for PowerPC, but I have not tested other archs. Please give it try and adapt it if necessary. The patch fixes also a problem with eepro100-cmdtimeout.

Wolfgang.
+ diff -u rtnet/config/modules/Makefile.KMOD_CFLAGS rtnet/config/modules/Makefile
--- rtnet/config/modules/Makefile.KMOD_CFLAGS	2006-01-17 15:28:00.000000000 +0100
+++ rtnet/config/modules/Makefile	2006-01-17 14:49:36.000000000 +0100
@@ -0,0 +1,8 @@
+all:
+	@echo $(RTEXT_LINUX_DIR) $(ARCH)
+	$(MAKE) -s -C $(RTEXT_LINUX_DIR) CC=$(CC) $(RTEXT_LINUX_DIR)/include/linux/modversions.h
+	$(MAKE) -s -C $(RTEXT_LINUX_DIR) CC=$(CC) ARCH=$(ARCH) SUBDIRS=$(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) modules
+                                                                                
+modules:
+	@echo RTEXT_KMOD_CFLAGS="\"$(CFLAGS)\""
+
+ diff -u rtnet/configure.ac.KMOD_CFLAGS rtnet/configure.ac
--- rtnet/configure.ac.KMOD_CFLAGS	2006-01-04 11:29:15.000000000 +0100
+++ rtnet/configure.ac	2006-01-17 15:50:27.000000000 +0100
@@ -459,7 +459,13 @@
             RTEXT_KMOD_CFLAGS="`${RTAI_CONFIG} --module-cflags`"
             ;;
         xeno-21x)
-            RTEXT_KMOD_CFLAGS="-D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -I${RTEXT_LINUX_DIR}/include -Wall -Wstrict-prototypes -fomit-frame-pointer -fno-strict-aliasing -pipe -O2 -I${RTEXT_LINUX_DIR}/include/xenomai -I${RTEXT_LINUX_DIR}/include/xenomai/compat"
+	    # Kernel cflags capturing trick from RTAI 
+	    kmod_cflags=`cd $srcdir/config/modules && make -s RTEXT_LINUX_DIR=$RTEXT_LINUX_DIR ARCH=$RTNET_TARGET_ARCH CC=$CC | grep '^RTEXT_KMOD_CFLAGS='`
+	    eval $kmod_cflags
+	    if test "$RTEXT_KMOD_CFLAGS" = ""; then
+	        AC_MSG_ERROR([Unable to retrieve compilation flags for kernel modules out of $RTEXT_LINUX_DIR/Makefile])
+	    fi	 
+	    RTEXT_KMOD_CFLAGS="$RTEXT_KMOD_CFLAGS -DEXPORT_SYMTAB -I${RTEXT_LINUX_DIR}/include/xenomai -I${RTEXT_LINUX_DIR}/include/xenomai/compat"
             ;;
         *)
             AC_MSG_ERROR([*** internal error])
@@ -771,7 +777,7 @@
         *) AC_MSG_ERROR([Bad argument to option: --enable-eepro100-cmdtimeout=<microseconds>]) ;;
     esac])
 if test x$CONFIG_RTNET_DRV_EEPRO100_CMDTIMEOUT = x ; then
-    $CONFIG_RTNET_DRV_EEPRO100_CMDTIMEOUT = 20
+    CONFIG_RTNET_DRV_EEPRO100_CMDTIMEOUT=20
 fi
 AC_MSG_RESULT($CONFIG_RTNET_DRV_EEPRO100_CMDTIMEOUT us)
 AC_DEFINE_UNQUOTED(CONFIG_RTNET_DRV_EEPRO100_CMDTIMEOUT,

Reply via email to