[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