N2X, GR740 and coverage: The impact of a linkcmds patch from 2014 to gcov_init calls
Thanassis.Tsiodras at esa.int
Thanassis.Tsiodras at esa.int
Wed Feb 28 08:59:23 UTC 2018
Hi Chris.
You can clone this repository:
https://github.com/ttsiodras/EmbeddedCoverage
...and then use different build invocations to easily reproduce - like
this:
First, with an older toolchain:
=================================
(master)$ /opt/rtems-4.11/bin/sparc-rtems4.11-gcc -v
Using built-in specs.
COLLECT_GCC=_sparc-rtems4.11-gcc
COLLECT_LTO_WRAPPER=/opt/rtems-4.11/libexec/gcc/sparc-rtems4.11/4.8.1/lto-wrapper
Target: sparc-rtems4.11
Configured with: ../gcc-4.8.1/configure --enable-threads -with-gnu-as
--with-gnu-ld --with-newlib --verbose --with-system-zlib --disable-nls
--enable-version-specific-runtime-libs --enable-languages=c,c++,ada
--target=sparc-rtems4.11 --prefix=/opt/rtems-4.11
--with-gmp=/opt/rtems-4.11 --with-mpfr=/opt/rtems-4.11
--with-mpc=/opt/rtems-4.11
Thread model: rtems
gcc version 4.8.1 (GCC)
(master)$ make PLATFORM=OAR RTEMS=/opt/rtems-4.11 FPU=1 COVERAGE=1
CROSS_PREFIX=sparc-rtems4.11 V=1 CPU=leon3
Generating dependencies for src/gcov_hooks.c
Generating dependencies for src/gcc.c
Generating dependencies for src/task2.c
Generating dependencies for src/task1.c
Generating dependencies for src/my_main.c
Generating dependencies for src/init.c
/opt/rtems-4.11/bin/sparc-rtems4.11-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.11/sparc-rtems4.11/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/init.o src/init.c
/opt/rtems-4.11/bin/sparc-rtems4.11-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.11/sparc-rtems4.11/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/my_main.o src/my_main.c
/opt/rtems-4.11/bin/sparc-rtems4.11-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.11/sparc-rtems4.11/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/task1.o src/task1.c
/opt/rtems-4.11/bin/sparc-rtems4.11-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.11/sparc-rtems4.11/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/task2.o src/task2.c
/opt/rtems-4.11/bin/sparc-rtems4.11-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.11/sparc-rtems4.11/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/gcc.o src/gcc.c
/opt/rtems-4.11/bin/sparc-rtems4.11-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.11/sparc-rtems4.11/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/gcov_hooks.o src/gcov_hooks.c
/opt/rtems-4.11/bin/sparc-rtems4.11-gcc -g -o bin.debug.leon3.OAR/fputest
objs.debug.leon3.OAR/init.o objs.debug.leon3.OAR/my_main.o
objs.debug.leon3.OAR/task1.o objs.debug.leon3.OAR/task2.o
objs.debug.leon3.OAR/gcc.o objs.debug.leon3.OAR/gcov_hooks.o
-fprofile-arcs -ftest-coverage -B/opt/rtems-4.11/sparc-rtems4.11/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress
Built debug version at bin.debug.leon3.OAR/fputest
Build done via RTEMS at /opt/rtems-4.11/sparc-rtems4.11/leon3/lib for
leon3.
=================================
With the old toolchain, CTOR_LIST contains this:
=================================
(master)$ sparc-rtems4.11-objdump -d -x -S ./bin.debug.leon3.OAR/fputest |
grep -A6 '<__CTOR_LIST__>'
4001d100 <__CTOR_LIST__>:
4001d100: ff ff ff ff 40 00 13 ac 40 00 14 54 40 00 18 54
.... at ...@..T at ..T
4001d110: 40 00 1b 38 40 00 22 4c 40 00 25 c0 @..8 at ."L at .%.
4001d11c <__CTOR_END__>:
4001d11c: 00 00 00 00 ....
=================================
...so the addresses of the "coverage stubs" are indeed stored in
__CTOR_LIST__.
Then, with rtems 4.12:
=================================
(master)$ make clean
(master)$ make PLATFORM=OAR RTEMS=/opt/rtems-4.12 FPU=1 COVERAGE=1
CROSS_PREFIX=sparc-rtems4.12 V=1 CPU=leon3
Generating dependencies for src/gcov_hooks.c
Generating dependencies for src/gcc.c
Generating dependencies for src/task2.c
Generating dependencies for src/task1.c
Generating dependencies for src/my_main.c
Generating dependencies for src/init.c
/opt/rtems-4.12/bin/sparc-rtems4.12-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.12/sparc-rtems4.12/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/init.o src/init.c
/opt/rtems-4.12/bin/sparc-rtems4.12-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.12/sparc-rtems4.12/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/my_main.o src/my_main.c
/opt/rtems-4.12/bin/sparc-rtems4.12-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.12/sparc-rtems4.12/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/task1.o src/task1.c
/opt/rtems-4.12/bin/sparc-rtems4.12-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.12/sparc-rtems4.12/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/task2.o src/task2.c
/opt/rtems-4.12/bin/sparc-rtems4.12-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.12/sparc-rtems4.12/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/gcc.o src/gcc.c
/opt/rtems-4.12/bin/sparc-rtems4.12-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0 -B/opt/rtems-4.12/sparc-rtems4.12/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress -DBSP_leon3 -o
objs.debug.leon3.OAR/gcov_hooks.o src/gcov_hooks.c
/opt/rtems-4.12/bin/sparc-rtems4.12-gcc -g -o bin.debug.leon3.OAR/fputest
objs.debug.leon3.OAR/init.o objs.debug.leon3.OAR/my_main.o
objs.debug.leon3.OAR/task1.o objs.debug.leon3.OAR/task2.o
objs.debug.leon3.OAR/gcc.o objs.debug.leon3.OAR/gcov_hooks.o
-fprofile-arcs -ftest-coverage -B/opt/rtems-4.12/sparc-rtems4.12/leon3/lib
-specs bsp_specs -qrtems -mcpu=cypress
Built debug version at bin.debug.leon3.OAR/fputest
Build done via RTEMS at /opt/rtems-4.12/sparc-rtems4.12/leon3/lib for
leon3.
ttsiod at rtems-builder ~/GitHub/EmbeddedCoverage
(master)$ /opt/rtems-4.12/bin/sparc-rtems4.12-objdump -d -x -S
./bin.debug.leon3.OAR/fputest | grep -A7 '<__CTOR_LIST__>'
40024c20 <__CTOR_LIST__>:
40024c20: ff ff ff ff ....
40024c24 <__CTOR_END__>:
40024c24: 00 00 00 00 40 00 14 60 40 00 15 24 40 00 19 cc
.... at ..`@..$@...
40024c34: 40 00 1d 34 40 00 24 74 40 00 28 08 @..4 at .$t at .(.
=================================
The CTOR_LIST is empty - the addresses of the coverage stubs are in
__CTOR_END__ - they are not read by do_global_ctors_aux (see the relevant
code in the previous post).
Then with a freshly built RTEMS5 from the mainline (RSB
703532cb04c6990fb21e97cb7347a16e9df11108-modified)
=================================
(master)$ make clean
(master)$ make PLATFORM=OAR RTEMS=/opt/rtems-5.1-2018.02.05 FPU=1
COVERAGE=1 CROSS_PREFIX=sparc-rtems5 V=1 CPU=gr740
Generating dependencies for src/gcov_hooks.c
Generating dependencies for src/gcc.c
Generating dependencies for src/task2.c
Generating dependencies for src/task1.c
Generating dependencies for src/my_main.c
Generating dependencies for src/init.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/init.o
src/init.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/my_main.o
src/my_main.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/task1.o
src/task1.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/task2.o
src/task2.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/gcc.o src/gcc.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/gcov_hooks.o
src/gcov_hooks.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -g -o
bin.debug.gr740.OAR/fputest objs.debug.gr740.OAR/init.o
objs.debug.gr740.OAR/my_main.o objs.debug.gr740.OAR/task1.o
objs.debug.gr740.OAR/task2.o objs.debug.gr740.OAR/gcc.o
objs.debug.gr740.OAR/gcov_hooks.o -fprofile-arcs -ftest-coverage
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress
Built debug version at bin.debug.gr740.OAR/fputest
Build done via RTEMS at /opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib
for gr740.
ttsiod at rtems-builder ~/GitHub/EmbeddedCoverage
(master)$ /opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-objdump -d -x -S
./bin.debug.gr740.OAR/fputest | grep -A7 '<__CTOR_LIST__>'
000242c0 <__CTOR_LIST__>:
242c0: ff ff ff ff ....
000242c4 <__CTOR_END__>:
242c4: 00 00 00 00 00 00 14 60 00 00 15 24 00 00 19 cc
.......`...$....
242d4: 00 00 1d 34 00 00 24 74 00 00 28 08 ...4..$t..(.
=================================
But if we patch linkcmds.base like this...
=================================
root at rtems-builder:/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib# diff
-u linkcmds.base.old linkcmds.base
--- linkcmds.base.old 2018-02-28 09:51:46.984834147 +0100
+++ linkcmds.base 2018-02-28 09:52:11.732833637 +0100
@@ -89,11 +89,13 @@
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
- KEEP (*(SORT(.ctors*)))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
- KEEP (*(SORT(.dtors*)))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
root at rtems-builder:/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib# exit
(master)$ make clean
(master)$ make PLATFORM=OAR RTEMS=/opt/rtems-5.1-2018.02.05 FPU=1
COVERAGE=1 CROSS_PREFIX=sparc-rtems5 V=1 CPU=gr740
Generating dependencies for src/gcov_hooks.c
Generating dependencies for src/gcc.c
Generating dependencies for src/task2.c
Generating dependencies for src/task1.c
Generating dependencies for src/my_main.c
Generating dependencies for src/init.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/init.o
src/init.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/my_main.o
src/my_main.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/task1.o
src/task1.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/task2.o
src/task2.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/gcc.o src/gcc.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -c -DCOVERAGE_ENABLED
-fprofile-arcs -ftest-coverage -Wall -Wextra -g -I src -DOAR
-Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes
-Wnested-externs -DDEBUG -O0
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress -DBSP_gr740 -o objs.debug.gr740.OAR/gcov_hooks.o
src/gcov_hooks.c
/opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-gcc -g -o
bin.debug.gr740.OAR/fputest objs.debug.gr740.OAR/init.o
objs.debug.gr740.OAR/my_main.o objs.debug.gr740.OAR/task1.o
objs.debug.gr740.OAR/task2.o objs.debug.gr740.OAR/gcc.o
objs.debug.gr740.OAR/gcov_hooks.o -fprofile-arcs -ftest-coverage
-B/opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib -specs bsp_specs
-qrtems -mcpu=cypress
Built debug version at bin.debug.gr740.OAR/fputest
Build done via RTEMS at /opt/rtems-5.1-2018.02.05/sparc-rtems5/gr740/lib
for gr740.
ttsiod at rtems-builder ~/GitHub/EmbeddedCoverage
(master)$ /opt/rtems-5.1-2018.02.05/bin/sparc-rtems5-objdump -d -x -S
./bin.debug.gr740.OAR/fputest | grep -A7 '<__CTOR_LIST__>'
000242c0 <__CTOR_LIST__>:
242c0: ff ff ff ff 00 00 14 60 00 00 15 24 00 00 19 cc
.......`...$....
242d0: 00 00 1d 34 00 00 24 74 00 00 28 08 ...4..$t..(.
000242dc <__CTOR_END__>:
242dc: 00 00 00 00 ....
=================================
...then the addresses of the coverage stubs end up on the right list.
Hope this makes things clearer,
Thanassis.
Thanassis Tsiodras
Real-time Embedded Software Engineer
System, Software and Technology Department
ESTEC
Keplerlaan 1, PO Box 299
NL-2200 AG Noordwijk, The Netherlands
Thanassis.Tsiodras at esa.int | www.esa.int
T +31 71 565 5332
From: Chris Johns <chrisj at rtems.org>
To: Thanassis.Tsiodras at esa.int, devel at rtems.org
Date: 28/02/2018 04:43
Subject: Re: N2X, GR740 and coverage: The impact of a linkcmds
patch from 2014 to gcov_init calls
On 28/02/2018 03:30, Thanassis.Tsiodras at esa.int wrote:
> What follows is a detailed bug report - and a suggested fix - regarding
the
> impact on calls to "__gcov_init" from a patch made to sparc's linkscmds
file
> back in 2014.
Thank you for the detail report.
>
[snip]
>
> Can you please confirm whether this is indeed a bug - and/or indicate
whether
> there's some other workaround that can be used besides "hacking" the
linkcmds
> this way, to make coverage functionality operate properly?
Do you have a test case with the compile and link commands that can be
used to
show the problem?
Thanks
Chris
This message and any attachments are intended for the use of the addressee or addressees only.
The unauthorised disclosure, use, dissemination or copying (either in whole or in part) of its
content is not permitted.
If you received this message in error, please notify the sender and delete it from your system.
Emails can be altered and their integrity cannot be guaranteed by the sender.
Please consider the environment before printing this email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20180228/40eb984d/attachment-0002.html>
More information about the devel
mailing list