Summary: | sys-devel/gcc-14: miscompiles dev-libs/icu-74.2 on x86 (testfw:$LD_LIBRARY_PATH icupkg -d icudt74l --list -x icudt74l.dat -o icudata.lst: Segmentation fault) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Agostino Sarubbo <ago> |
Component: | Current packages | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | office |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
See Also: | https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113907 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 914580, 925226 | ||
Attachments: | build.log |
Description
Agostino Sarubbo
![]() 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> |