Message309680
That's mysterious. I reviewed the 'stdout' log from the buildbot. The removal of profile data is run early in the build:
find . -name '*.gc??' -exec rm -f {} ';'
Later, the bytearrayobject is compiled with profile generation enabled:
gcc -pthread -c -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-generate -I. -I./Include -DPy_BUILD_CORE -o Objects/bytearrayobject.o Objects/bytearrayobject.c
When the unit tests run, we get errors:
profiling:/var/lib/buildbot/slaves/enable-optimizations-bot/3.x.gps-debian-profile-opt.nondebug/build/Objects/bytearrayobject.gcda:Merge mismatch for function 35
The second build (with profile use) fails because of the missing profile information:
gcc -pthread -c -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-use -fprofile-correction -I. -I./Include -DPy_BUILD_CORE -o Objects/bytearrayobject.o Objects/bytearrayobject.c
Objects/bytearrayobject.c: In function ‘bytearray_startswith’:
Objects/bytearrayobject.c:2429:1: error: the control flow of function ‘bytearray_startswith’ does not match its profile data (counter ‘time_profiler’) [-Werror=coverage-mismatch]
}
^
cc1: some warnings being treated as errors
Seems like a compiler bug to me. Wild theory, could it be something to do with address randomization and forking? Looks like maybe the merge mismatch errors come when the 'python' executable forks. |
|
Date |
User |
Action |
Args |
2018-01-08 17:33:30 | nascheme | set | recipients:
+ nascheme, gregory.p.smith, vstinner |
2018-01-08 17:33:30 | nascheme | set | messageid: <1515432810.87.0.467229070634.issue31963@psf.upfronthosting.co.za> |
2018-01-08 17:33:30 | nascheme | link | issue31963 messages |
2018-01-08 17:33:30 | nascheme | create | |
|