Hi everybody,

I'm using uSTL with file stream support in combination with the FreeBSD TCP/IP 
stack and came across missmatching signatures for ioctl.
The ustl/config.h exports the function like this:
//
// There is no eCos header that exports this function so we do it here
//
#ifdef CYGCLS_USTL_FSTREAMS
__externC int ioctl( int fd, CYG_ADDRWORD com, ... );
#endif

Whereas the FreeBSD stack declared the ioctl function as:
__BEGIN_DECLS
int     ioctl __P((int, unsigned long, ...));
__END_DECLS

The second parameter leads to an error, when linking against the eCos library:
install/include/ustl/config.h:96: error: declaration of C function ‘int 
ioctl(int, CYG_ADDRWORD, ...)’ conflicts with
install/include/sys/ioctl.h:86: error: previous declaration ‘int ioctl(int, 
long unsigned int, ...)’ here

Did I do something wrong, or does the signature declaration in uSTL have to be 
changed to match the FreeBSD (and OpenBSD btw.) declaration?

Regards,

Martin


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply via email to