This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Posix management [HELP]
On Wed, Jun 18, 2003 at 09:46:20AM +0200, Matthieu.GIRARDIN@fr.thalesgroup.com wrote:
> Hello everybody,
>
> I've worked under ecos for one month. After having used ecos functions about
> mutex, thread [...] without any problem, I must use, now, the Posix
> compatibility layer. I wanna be able to manage message queues ...
>
> So, I added the template and the package Posix with :
> - Build->Templates->Posix
> - Build->Packages->ISO C and POSIX infrastructure
> - Build->Packages->POSIX compatibility layer
>
> I configured the tools as follow :
> - ISO C and POSIX infrastructure
> § POSIX message queues enabled
> * implementation header enabled with the value :
> <mqueue.h>
> * max nb queues : 50
> * max nb prio : 65535
> - POSIX compatibility layer
> § POSIX message queues enabled
> * nb queues : 50
> * validate queue descriptors enabled
> * allow empty disabled
>
> My problem is that I can't compile ecos libraries any more.
> You can see ECOS messages about this at the end of this mail.
>
> If my configuration is not complete, please tell me.
> Oh yeah! I forgot to specify that I am under Linux Redhat 7.3 and ecos turns
> as a synthetic target...
> I need help, really.
>
> Last thing : excuse my poor english; I am a french student and I work to
> make it better...
>
> Thanks a lot.
>
> Matthieu GIRARDIN
>
>
>
>
>
> make -r -C compat/posix/v2_0b1 build
> make[1]: Entre dans le répertoire
> `/opt/ecos/ecos-work/linux_build/compat/posix/v2_0b1'
> gcc -c -I/opt/ecos/ecos-work/linux_install/include
> -I/opt/ecos/ecos-2.0b1/packages/compat/posix/v2_0b1
> -I/opt/ecos/ecos-2.0b1/packages/compat/posix/v2_0b1/src
> -I/opt/ecos/ecos-2.0b1/packages/compat/posix/v2_0b1/tests -I.
> -I/opt/ecos/ecos-2.0b1/packages/compat/posix/v2_0b1/src/ -Wall
> -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g
> -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions
> -fvtable-gc -finit-priority -Wp,-MD,src/mqueue.tmp -o
> src/compat_posix_mqueue.o
> /opt/ecos/ecos-2.0b1/packages/compat/posix/v2_0b1/src/mqueue.cxx
> In file included from
> /opt/ecos/ecos-2.0b1/packages/compat/posix/v2_0b1/src/pprivate.h:72,
> from
> /opt/ecos/ecos-2.0b1/packages/compat/posix/v2_0b1/src/mqueue.cxx:89:
> /opt/ecos/ecos-work/linux_install/include/cyg/posix/export.h:100: parse
> error before `*'
> /opt/ecos/ecos-work/linux_install/include/cyg/posix/export.h:102: parse
> error before `*'
#ifdef CYGPKG_POSIX_SIGNALS
__externC void cyg_pthread_sigmask_set (const sigset_t *set, sigset_t *oset);
__externC cyg_bool cyg_posix_sigpending(void);
__externC void cyg_posix_deliver_signals(const sigset_t *mask);
So it looks like you don't have sigset_t defined.
eCos has two implementations of signals. There is code in libc and
code in the POSIX layer. What i think has happened is you have the
libc signal code where as you need the POSIX code.
This is probably something to do with the way you configured
eCos. What i suggest you do is:
ecosconfig new linux posix
This will get you the correct packages you need.
You can then change the number of queues and priorities. I normally
edit the ecos.ecc file by hand, its much easier and friendly than
using the GUI. Then:
ecosconfig tree
make.
Andrew
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss