[RTEMS Project] #4213: libbsd: Reduce footprint of minimal buildset

RTEMS trac trac at rtems.org
Fri Feb 25 18:23:55 UTC 2022


#4213: libbsd: Reduce footprint of minimal buildset
--------------------------------+---------------------------------
 Reporter:  Christian Mauderer  |       Owner:  Christian Mauderer
     Type:  project             |      Status:  assigned
 Priority:  normal              |   Milestone:  Indefinite
Component:  network/libbsd      |     Version:
 Severity:  normal              |  Resolution:
 Keywords:  SoC, libbsd, small  |  Blocked By:
 Blocking:                      |
--------------------------------+---------------------------------
Description changed by Gedare Bloom:

Old description:

> == Overview
>
> The RTEMS libbsd is now the default network stack for a lot of BSPs. But
> it's footprint is quite a bit larger then the one of the "legacy" network
> stack. In 2018 we introduced buildsets that allow to disable features.
> Currently only a few features can be disabled (OpenSSL, IPv6). Target of
> this project would be to find more non-essential features that are always
> linked in and allow to disable them.
>
> As a general guideline: The minimal buildset of libbsd should provide
> about the functionality of the legacy network stack.
>
> The work must not increase the testing effort that is necessary for a
> release. That should not be a big problem as long as no new buildsets or
> new build options are necessary. If something like this is necessary, it
> will need a discussion on the mailing list first.
>
> == Requirements
>
> * A target where libbsd can be used. That can be either real hardware or
> a simulator with network support (for example xilinx_zynq_a9_qemu).
>
> * If you have a real hardware target, you'll most likely need some JTAG
> debugger for it. On a simulator you can use gdb. You have to know how to
> use the debugger.
>
> * Basic C coding skills and very good skills to read C code. You'll have
> to dig through FreeBSD code which can be quite complex!
>
> * Quite a bit of knowledge how to analyze generated elf files. You should
> at least be able to use objdump and read linker map files.
>
> * Ability to build your own RTEMS application outside of the normal test
> tree to test stuff during development.

New description:

 == Overview

 The RTEMS libbsd is now the default network stack for a lot of BSPs. But
 it's footprint is quite a bit larger then the one of the "legacy" network
 stack. In 2018 we introduced buildsets that allow to disable features.
 Currently only a few features can be disabled (OpenSSL, IPv6). Target of
 this project would be to find more non-essential features that are always
 linked in and allow to disable them.

 As a general guideline: The minimal buildset of libbsd should provide
 about the functionality of the legacy network stack.

 The work must not increase the testing effort that is necessary for a
 release. That should not be a big problem as long as no new buildsets or
 new build options are necessary. If something like this is necessary, it
 will need a discussion on the mailing list first.

 == Requirements

 * A target where libbsd can be used. That can be either real hardware or a
 simulator with network support (for example xilinx_zynq_a9_qemu).

 * If you have a real hardware target, you'll most likely need some JTAG
 debugger for it. On a simulator you can use gdb. You have to know how to
 use the debugger.

 * Basic C coding skills and very good skills to read C code. You'll have
 to dig through FreeBSD code which can be quite complex!

 * Quite a bit of knowledge how to analyze generated elf files. You should
 at least be able to use objdump and read linker map files.

 * Ability to build your own RTEMS application outside of the normal test
 tree to test stuff during development.

 == Difficulty ==
 This is a small (175-hour) project of medium difficulty.

 == More Information ==

 Read the comments for a lot more discussion on this topic.

--

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


More information about the bugs mailing list