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,