On 3/28/25 14:44, Christophe Lyon wrote:
Hi,
On Fri, 28 Mar 2025 at 14:24, <ci_not...@linaro.org> wrote:
Dear contributor,
Our automatic CI has detected problems related to your patch(es). Please find
some details below.
In arm-eabi cortex-m23 soft, after:
| commit gcc-15-8947-g8ed2d5d219e
| Author: Jørgen Kvalsvik <j...@lambda.is>
| Date: Tue Jun 4 14:13:22 2024 +0200
|
| Add prime path coverage to gcc/gcov
|
| This patch adds prime path coverage to gcc/gcov. First, a quick
| introduction to path coverage, before I explain a bit on the pieces of
| the patch.
| ... 404 lines of the commit log omitted.
Produces 5 regressions:
|
| regressions.sum:
| Running g++:g++.dg/gcov/gcov.exp ...
| FAIL: g++.dg/gcov/gcov-22.C -std=gnu++17 gcov failed: spawn failed
| FAIL: g++.dg/gcov/gcov-22.C -std=gnu++26 gcov failed: spawn failed
| FAIL: g++.dg/gcov/gcov-22.C -std=gnu++98 gcov failed: spawn failed
| Running gcc:gcc.misc-tests/gcov.exp ...
| ... and 2 more
I've given a quick look at the logs, and gcov-22.C says:
spawn -ignore SIGHUP
/home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/destdir/x86_64-pc-linux-gnu/bin/gcov
--prime-paths gcov-22.C
FAIL: g++.dg/gcov/gcov-22.C -std=gnu++98 gcov failed: spawn failed
I believe that rather than "dg-compile", it should use "dg-do run {
target native }" like almost all other gcov tests?
Not necessarily -- the functions in this file is a distillation of the
odd CFGs and functions that caused gnarly and unexpected errors, usually
ICEs. There is no main() and some of the functions are infinite loops.
We get enough information by simply compiling.
For the other errors:
FAIL: gcc.misc-tests/gcov-31.c (test for excess errors)
FAIL: gcc.misc-tests/gcov-32.c (test for excess errors)
the log actually says:
/gcov-31.c:12:8: error: unknown type name 'sigjmp_buf'; did you mean 'jmp_buf'?
/gcov-31.c: In function 'run_pending_traps':
/gcov-31.c:22:5: error: implicit declaration of function '__sigsetjmp'
[-Wimplicit-function-declaration]
/gcov-32.c:6:8: error: unknown type name 'sigjmp_buf'; did you mean 'jmp_buf'?
/gcov-32.c:21:19: error: passing argument 1 of 'setjmp' makes pointer
from integer without a cast [-Wint-conversion]
I haven't looked further, but does this indicate a dependency on
glibc? (this target "arm-none-eabi" uses newlib)
Looks like it. This is only partially intentional -- the tests are
cleaned examples from real programs (bash, check) which use sigjmp_buf.
The bash case (gcov-31.c) uses __sigsetjmp and surely has a glibc
dependency, but gcov-32.c could maybe be tuned to use jmp_buf. I don't
know if that will preserve the failure mode however, and the root of the
problem was fixed when the test was added.
Looks like Dimitar Dimitrov (CC) already addressed the failure.
commit 1c5c57092cf23ac6eae139627d2406f67fe3303b
Author: Dimitar Dimitrov <dimi...@dinux.eu>
Date: Thu Mar 27 20:31:17 2025 +0200
testsuite: Require effective target sigsetjmp for gcov-31/32
Thanks,
Christophe
Used configuration :
*CI config* tcwg_gnu_embed_check_gcc arm-eabi -mthumb -march=armv8-m.base
-mtune=cortex-m23 -mfloat-abi=soft -mfpu=auto
*configure and test flags:* --target arm-eabi --disable-multilib
--with-mode=thumb --with-cpu=cortex-m23 --with-float=soft
--target_board=-mthumb/-march=armv8-m.base/-mtune=cortex-m23/-mfloat-abi=soft/-mfpu=auto
qemu_cpu=cortex-m33
We track this bug report under https://linaro.atlassian.net/browse/GNU-1551.
Please let us know if you have a fix.
If you have any questions regarding this report, please ask on
linaro-toolch...@lists.linaro.org mailing list.
-----------------8<--------------------------8<--------------------------8<--------------------------
The information below contains the details of the failures, and the ways to
reproduce a debug environment:
You can find the failure logs in *.log.1.xz files in
*
https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m23_soft_eabi-build/312/artifact/artifacts/00-sumfiles/
The full lists of regressions and improvements as well as configure and make
commands are in
*
https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m23_soft_eabi-build/312/artifact/artifacts/notify/
The list of [ignored] baseline and flaky failures are in
*
https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m23_soft_eabi-build/312/artifact/artifacts/sumfiles/xfails.xfail
Current build :
https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m23_soft_eabi-build/312/artifact/artifacts
Reference build :
https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-thumb_m23_soft_eabi-build/311/artifact/artifacts
Instruction to reproduce the build :
https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gcc/sha1/8ed2d5d219e999aee42015a0db38612011c2c507/tcwg_gnu_embed_check_gcc/master-thumb_m23_soft_eabi/reproduction_instructions.txt
Full commit :
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=8ed2d5d219e999aee42015a0db38612011c2c507