Re: comedi + rtai adeos

> I've fixed compilation in cvs against rtai adeos patched kernels.  It=20
> would be helpful if someone tested that it actually works though (I don't=
> =20 use RT at the moment).

Hi Frank,

this is what I get when trying to compile (configured with

../configure  --with-linuxdir=/usr/src/linux-2.4.24-hal10/ --with-rtaidir=/usr/src/rtai-3.0r2

)

$ make
make  all-recursive
make[1]: Entering directory
`/usr/src/comedi-cvs/build-linux-2.4.24-hal10-rtai-3.0r2'
Making all in comedi
make[2]: Entering directory
`/usr/src/comedi-cvs/build-linux-2.4.24-hal10-rtai-3.0r2/comedi'
Making all in kcomedilib
make[3]: Entering directory
`/usr/src/comedi-cvs/build-linux-2.4.24-hal10-rtai-3.0r2/comedi/kcomedilib'
if gcc -DHAVE_CONFIG_H -I. -I../../../comedi/kcomedilib -I../..
-I../../../include/ -DKBUILD_MODNAME=kcomedilib
-DKBUILD_BASENAME=../../../comedi/kcomedilib/data -D__KERNEL__
-I/usr/src/linux-2.4.24-hal10/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODULE
-D__MODULE_KERNEL_i686=1 -D__BOOT_KERNEL_ENTERPRISE=0 -D__BOOT_KERNEL_UP=1
-D__BOOT_KERNEL_SMP=0 -D__BOOT_KERNEL_BIGMEM=0 -D__BOOT_KERNEL_HUGEMEM=0
-I/usr/src/rtai-3.0r2 -I/usr/src/rtai-3.0r2/rtai-core/include  -g -O2 -MT
kcomedilib_ko-data.o -MD -MP -MF ".deps/kcomedilib_ko-data.Tpo" \
  -c -o kcomedilib_ko-data.o `test -f 'data.c' || echo
'../../../comedi/kcomedilib/'`data.c; \
then mv -f ".deps/kcomedilib_ko-data.Tpo" ".deps/kcomedilib_ko-data.Po"; \
else rm -f ".deps/kcomedilib_ko-data.Tpo"; exit 1; \
fi
In file included from ../../../include/linux/comedi_rt.h:43,
                 from ../../../include/linux/comedidev.h:371,
                 from ../../../comedi/kcomedilib/data.c:26:
/usr/src/rtai-3.0r2/rtai-core/include/rtai.h:26:22: asm/rtai.h: No such
file or directory
In file included from ../../../include/linux/comedi_rt.h:44,
                 from ../../../include/linux/comedidev.h:371,
                 from ../../../comedi/kcomedilib/data.c:26:
/usr/src/rtai-3.0r2/rtai-core/include/rtai_sched.h:98: error: parse error
before "RTIME"
/usr/src/rtai-3.0r2/rtai-core/include/rtai_sched.h:98: warning: no
semicolon at end of struct or union

=========

So compilation goes wrong because of the lack of a symbolic link
(asm-i386 to asm).  The problem originates from the fact that I use a
build directory for compiling RTAI and the symbolic link is over
there.  I guess for people compiling without a build directory,
compilation will be fine.

Since version 3.0 RTAI copies all headers to $PREFIX/include (defaults to
/usr/realtime).  So maybe it's better to use the RTAI _installation_
dir instead of the RTAI source dir (at least for RTAI >= 3.0).

Suggestion (not ideal, and it gives the ugly redefined warnings, only
tested with RTAI 3.0) :


$ diff -r rtai.m4.patched rtai.m4.old
6,7c6
<                       [specify path to RTAI installation directory \
<                       if your using (RTAI > 3.0), else RTAI source dir])],
---
>                       [specify path to RTAI source directory])],
9c8
<               [RTAI_DIR=/usr/realtime])
---
>               [RTAI_DIR=/usr/src/rtai])
19c18,22
<                       AC_MSG_ERROR([incorrect RTAI directory?])
---
>                       if [[ -d ${RTAI_DIR}/rtai-core/include ]] ; then
>                               RTAI_CFLAGS=" -I${RTAI_DIR} -I${RTAI_DIR}/rtai-core/include"
>                       else
>                               AC_MSG_ERROR([incorrect RTAI directory?])
>                       fi


==========================================================================

ps.  The current CVS also fails at the compilation of usbdux now:

if gcc -DHAVE_CONFIG_H -I. -I../../../comedi/drivers -I../..
-I../../../include/ -DKBUILD_MODNAME=usbdux
-DKBUILD_BASENAME=../../../comedi/drivers/usbdux -D__KERNEL__
-I/usr/src/linux-2.4.24-hal10/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
-fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686
-DMODULE -DMODULE -D__MODULE_KERNEL_i686=1
-D__BOOT_KERNEL_ENTERPRISE=0 -D__BOOT_KERNEL_UP=1
-D__BOOT_KERNEL_SMP=0 -D__BOOT_KERNEL_BIGMEM=0
-D__BOOT_KERNEL_HUGEMEM=0 -I/usr/realtime//include  -g -O2 -MT
usbdux.o -MD -MP -MF ".deps/usbdux.Tpo" \
  -c -o usbdux.o `test -f '../../../comedi/drivers/usbdux.c' || echo
  '../../../comedi/drivers/'`../../../comedi/drivers/usbdux.c; \
then mv -f ".deps/usbdux.Tpo" ".deps/usbdux.Po"; \
else rm -f ".deps/usbdux.Tpo"; exit 1; \
fi

etc.

{standard input}: Assembler messages:
{standard input}:419: Warning: rest of line ignored; first ignored
character is `/'
{standard input}:420: Error: unknown pseudo-op: `.text.lock...'
{standard input}:446: Warning: rest of line ignored; first ignored
character is `/'
{standard input}:447: Error: unknown pseudo-op: `.text.lock...'

========================================================================

ps2.  You probably would have preferred a one line answer: "yes it works" :)

regards,

klaas

Received on 2004-03-01Z16:05:32