[RTEMS Project] #4518: RTEMS and LibBSD both provide pipe()

RTEMS trac trac at rtems.org
Thu Sep 23 09:16:00 UTC 2021


#4518: RTEMS and LibBSD both provide pipe()
----------------------------+--------------------------
 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.

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 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.

--

--
Ticket URL: <http://devel.rtems.org/ticket/4518#comment:3>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list