On Fri, 28 Mar 2025 at 15:15, Jørgen Kvalsvik <j...@lambda.is> wrote: > > 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. >
OK I've understood the issue. Our build system defines GXX_UNDER_TEST (pointing to the just-installed compiler), but we still test "in build tree". So gcc-transform-out-of-tree will do nothing and we set GCOV to an invalid path ( /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/destdir/x86_64-pc-linux-gnu/bin/gcov above) because the actual binary is called $target-gcov, just like the compiler is called $target-gcc. I'll take a look at writing a patch to support a new variable (GCOV_UNDER_TEST). > > > > > 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 > Indeed, thanks for the heads-up! Thanks, Christophe > > > > > 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 >