[RTEMS Project] #4518: RTEMS and LibBSD both provide competing pipe() interfaces (was: RTEMS and LibBSD both provide pipe())
RTEMS trac
trac at rtems.org
Fri Sep 24 00:03:48 UTC 2021
#4518: RTEMS and LibBSD both provide competing pipe() interfaces
----------------------------+--------------------------
Reporter: Chris Johns | Owner: Chris Johns
Type: defect | Status: assigned
Priority: normal | Milestone: 6.1
Component: network/libbsd | Version: 6
Severity: normal | Resolution:
Keywords: | Blocked By:
Blocking: |
----------------------------+--------------------------
Description changed by Chris Johns:
Old description:
> 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 calls.
>
> 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.
New description:
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.
--
--
Ticket URL: <http://devel.rtems.org/ticket/4518#comment:4>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list