https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/ Issue: dev-libs/icu-74.2 fails to compile. Discovered on: x86 (internal ref: tinderbox_x86) Info about the issue: https://wiki.gentoo.org/wiki/Project:Tinderbox/Common_Issues_Helper#CF0014
Created attachment 884602 [details] build.log build log and emerge --info
a291237b628f419d7f7ac264dd7b42947b565222 is the first bad commit commit a291237b628f419d7f7ac264dd7b42947b565222 Author: Andrew MacLeod <amacleod@redhat.com> Date: Tue Oct 31 11:51:34 2023 -0400 Remove simple ranges from trailing zero bitmasks. During the intersection operation, it can be helpful to remove any low-end ranges when the bitmask has trailing zeros. This prevents obviously incorrect ranges from appearing without requiring a bitmask check. * value-range.cc (irange_bitmask::adjust_range): New. (irange::intersect_bitmask): Call adjust_range. * value-range.h (irange_bitmask::adjust_range): New prototype. gcc/value-range.cc | 30 ++++++++++++++++++++++++++++++ gcc/value-range.h | 2 ++ 2 files changed, 32 insertions(+) bisect found first bad commit $ contrib/git-descr.sh a291237b628f419d7f7ac264dd7b42947b565222 r14-5109-ga291237b628f41
==26485== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==26485== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info ==26485== Command: ../bin/icupkg -d ./out/build/icudt74l --list -x * /var/tmp/portage/dev-libs/icu-74.1/work/icu/source/data/in/icudt74l.dat -o out/tmp/icudata.lst ==26485== ==26485== Invalid write of size 1 ==26485== at 0x52A0110: memcpy (string_fortified.h:29) ==26485== by 0x52A0110: uprv_copyArray64 (udataswp.cpp:172) ==26485== by 0x52A0110: uprv_copyArray16(UDataSwapper const*, void const*, int, void*, UErrorCode*) (udataswp.cpp:160) ==26485== by 0x52A0630: udata_swapDataHeader (udataswp.cpp:342) ==26485== by 0x48694F1: icu::Package::readPackage(char const*) (package.cpp:483) ==26485== by 0x10987F: main (icupkg.cpp:335) ==26485== Address 0x54f2458 is 0 bytes after a block of size 201,216 alloc'd ==26485== at 0x4842E4D: operator new(unsigned int) (vg_replace_malloc.c:476) ==26485== by 0x10936B: main (icupkg.cpp:285)
there's a lot of suspicious code wrt aliasing but -fno-strict-aliasing doesn't help
The upstream bug is complicated as it ended up having other reproducers which happen outside of ICU. But ICU should be fixed now. commit da6dcbbd28d6482e45d726d2ade0a5c301c1e500 Author: Sam James <sam@gentoo.org> Date: Mon Mar 18 04:44:19 2024 +0000 sys-devel/gcc: add 14.0.1_pre20240317 Closes: https://bugs.gentoo.org/920233 Closes: https://bugs.gentoo.org/925873 Closes: https://bugs.gentoo.org/927013 Signed-off-by: Sam James <sam@gentoo.org>