I've noticed that the common networking infrastructure package (CYGPKG_NET) declares the same CDL interfaces as the lwIP package (CYGPKG_NET_LWIP):
cdl_interface CYGPKG_NET_STACK cdl_interface CYGPKG_NET_STACK_INET cdl_interface CYGPKG_NET_STACK_INET6 Presumably these interface declarations were placed in CYGPKG_NET at a time when it was assumed that _all_ networking stack implementations would use that package. Now we have the lwIP stack which does not use CYGPKG_NET. If a developer attempts to load both CYGPKG_NET and CYGPKG_NET_LWIP into a single eCos configuration, libCDL reports errors due to duplicate cdl_interface declarations. Of course it's unlikely to be sensible to load both these packages, but that's not the point - the naming clash should be fixed. Are these cdl_interfaces intended to indicate the availability of _any_ networking stack or specifically one that provides a BSD sockets API? At present, the only packages that "require" these interfaces are HTTPD and Microwindows. I expect that both these packages require BSD sockets. In that case, I propose that we eliminate the CDL interface declarations from the lwIP stack. Any future packages which depend on one of the lwIP-specific stack APIs can simply "require CYGPKG_NET_LWIP". Comments? John Dallaway