#3551 closed task (fixed)

Move default configuration to separate library

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 5.1
Component: lib Version: 5
Severity: normal Keywords: qualification
Cc: Blocked By:
Blocking: #2514

Description

An RTEMS application default configuration is contained in cpukit/libmisc/dummy/default-configuration.c. This default configuration is contained in librtemscpu.a. This has at least two problems:

  1. Application configuration errors may pull in the default configuration which in turn leads to multiply define symbols error. This is quite confusing. You have to consult the linker map file to figure out what cased the pull in of the default configurations. You need to know what a linker map file is and how you generate it with your build system. This is not very user friendly.
  1. It prevents the use of default configuration items for each subsystem in librtemscpu.a. This can be used to reduce the size of the configuration itself.

Proposed change: Move the default configuration to a separate library, e.g. librtemsdefaultconfig.a.

Change History (6)

comment:1 Changed on 10/23/18 at 14:12:55 by Sebastian Huber <sebastian.huber@…>

In 1b89636/rtems_waf:

Avoid default RTEMS application configuration

Use a test body with a proper RTEMS application configuration to avoid a
dependency on the default configuration. Do not include
<rtems/score/cpuopts.h> directly since this header file is an
implementation detail.

Update #3551.

comment:2 Changed on 10/25/18 at 05:52:50 by Sebastian Huber <sebastian.huber@…>

In 2ce13cf/rtems-libbsd:

Update rtems_waf

Update #3551.

comment:3 Changed on 10/25/18 at 05:57:01 by Sebastian Huber <sebastian.huber@…>

In 15c9509/examples-v2:

Update rtems_waf

Update #3551.

comment:4 Changed on 10/30/18 at 06:11:50 by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: assignedclosed

In 55b69ed/rtems:

Move default config to librtemsdefaultconfig.a

An RTEMS application default configuration is contained in
cpukit/libmisc/dummy/default-configuration.c. This default
configuration was contained in librtemscpu.a. This had at least two
problems:

  1. Application configuration errors may have pulled in the default configuration which in turn lead to multiply define symbols error. This was quite confusing. You had to consult the linker map file to figure out what cased the pull in of the default configuration. You needed to know what a linker map file is and how you generate it with your build system. This was not very user friendly.
  1. It prevented the use of default configuration items for each subsystem in librtemscpu.a. This may be used to reduce the size of the configuration itself.

Move the default configuration to the separate library
librtemsdefaultconfig.a.

Close #3551.

comment:5 Changed on 11/08/18 at 13:00:54 by Sebastian Huber <sebastian.huber@…>

In 942d52a/rtems:

build: Fix library order

Update #3551.

comment:6 Changed on 06/23/21 at 07:16:03 by Sebastian Huber

Keywords: qualification added
Note: See TracTickets for help on using tickets.