[RTEMS Project] #4080: build: Add start.o dependency to the executable link step

RTEMS trac trac at rtems.org
Wed Sep 16 07:04:52 UTC 2020


#4080: build: Add start.o dependency to the executable link step
-----------------------------+------------------------------
 Reporter:  Sebastian Huber  |       Owner:  Sebastian Huber
     Type:  enhancement      |      Status:  assigned
 Priority:  normal           |   Milestone:  6.1
Component:  build            |     Version:  6
 Severity:  normal           |  Resolution:
 Keywords:                   |  Blocked By:
 Blocking:                   |
-----------------------------+------------------------------
Description changed by Sebastian Huber:

Old description:

> RTEMS is a real-time operating system and the applications using RTEMS
> end up in a single executable which contains also the full system
> initialization.  The linker uses a start file to determine what should be
> linked into the executable. The start file is also built by the build
> system, however, it is only indirectly referenced via a linker script,
> for example:
>
> https://git.rtems.org/rtems/tree/bsps/arm/shared/start/linkcmds.base#n28
>
> So, every executable depends on the start file (start.o usually). If
> start.o changes, then the executable needs to be re-linked. Also the
> start file needs the name expected by the linker script, for example not
> start.S.17.o.
>
> The start files are build with this commands:
>
> https://git.rtems.org/rtems/tree/wscript#n535
>
> https://git.rtems.org/rtems/tree/wscript#n244
>
> Somehow we have to add a dependency on start.o to every executable.

New description:

 RTEMS is a real-time operating system and the applications using RTEMS end
 up in a single executable which contains also the full system
 initialization.  The linker uses a start file to determine what should be
 linked into the executable. The start file is also built by the build
 system, however, it is only indirectly referenced via a linker script, for
 example:

 https://git.rtems.org/rtems/tree/bsps/arm/shared/start/linkcmds.base#n28

 So, every executable depends on the start file (start.o usually). If
 start.o changes, then the executable needs to be re-linked. Also the start
 file needs the name expected by the linker script, for example not
 start.S.17.o.

 The start files are build with this commands:

 https://git.rtems.org/rtems/tree/wscript#n535

 https://git.rtems.org/rtems/tree/wscript#n244

 Somehow we have to add a dependency on start.o to every executable.

 To experiment with the build system use the following commands to set it
 up:
 {{{
 cd $HOME
 mkdir rtems-sdk
 mkdir rtems-sdk/src
 cd rtems-sdk/src
 git clone git://git.rtems.org/rtems.git
 git clone git://git.rtems.org/rtems-source-builder.git rsb
 cd rsb/rtems
 ../source-builder/sb-set-builder --prefix=$HOME/rtems-sdk/6 6/rtems-sparc
 cd ../../rtems
 echo "[sparc/leon3]" > config.ini
 ./waf configure --prefix=$HOME/rtems-sdk/6
 ./waf
 }}}
 The host must be capable to build GCC and needs the Python development
 support (header files) installed.

--

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


More information about the bugs mailing list