2009/6/16, Igor Novoseltsev wrote: > > > > > #ifdef _WRS_KERNEL > > > > > extern int open (const char *, int, int); > > > > > #else > > > > > extern int open (const char *, int, ...); > > > > > #endif /* _WRS_KERNEL */ > > > > > > > > Then why doesn't the 2-arg version work just fine? > > The answer is: the ccppc compiler I used in Makefile.vxworks by default > builds the kernel-space module, which is "the traditional VxWorks method > of development" according the Wind River documentation. To force it to > use user-space module, called "the real time process (RTP)" module, you > have to supply '-mrtp' option.
When you say it should be using '-mrtp' option when building userland, can this be given in CFLAGS or how is this specified? The hand-crafted makefile should most probably define the -mrtp option. Why should libcurl be compiled as kernel code? Does there exists a ccppc specific preprocessor predefined symbol that could be used to tell apart ccppc from other compilers? The configure script can do some adjustments based on the compiler being used. But I fear that libtool vxworks support is very simple and probably not good enough yet. but it could also happen that it doesn't need anything more in order to do cross-compilation directly from the configure && make method. -- -=[Yang]=-
