RTEMS and LibBSD both provide competing pipe() interfaces
RTEMS provides a pipe()
call in cpukit/libfs/src/pipe/pipe.c
and LibBSD also provides a call in rtemsbsd/rtems/rtems-bsd-syscall-api.c
. We should not have competing interfaces.
The selection of the version you get depends on the link order and the linker version. The RTEMS 6 linker seems to have a different preference to RTEMS 5. Apart from this fragility LibBSD should not be providing this interface.
A LibBSD pipe()
is problematic for a number of reasons and so I am going to remove the call from it.
If LibBSD support is needed it needs to be via a file system op handles like all other file system interfaces for descriptor based access. I will not be adding this support.
The removal of pipe()
from LibBSD removes the kqueue
support for pipes. See the test selectpollkqueue01
. If this support is needed please contact the RTEMS developers.