ICE on powerpc64le-unknown-freebsd-gcc version 17.0.0
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 32/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- c, cmake
- Lĩnh vực
- build-system, compilers
Hướng nghiên cứu
Start with lib/dictBuilder/zdict.c at ZDICT_trainFromBuffer_legacy and run the supplied cross-compilation script on FreeBSD. Inspect the GCC vectorization failure during the GIMPLE vect pass and use the reported GCC and binutils-gdb commits as reproduction context. Done means the zstd build completes without an internal compiler error.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
Whilst compiling zstd I hit an ICE on gcc. This doesn't happen with other programs like ffmpeg, X11 or OpenSSL.
Ran on host: FreeBSD xerix 15.0-RELEASE FreeBSD 15.0-RELEASE releng/15.0-n280995-7aedc8de6446 GENERIC amd64 whilst cross compiling
during GIMPLE pass: vect
/archive/menix/src/eden-ppc/.cache/cpm/zstd/b8d6101fba/lib/dictBuilder/zdict.c: In function 'ZDICT_trainFromBuffer_legacy':
/archive/menix/src/eden-ppc/.cache/cpm/zstd/b8d6101fba/lib/dictBuilder/zdict.c:1088:8: internal compiler error: Bus error
1088 | size_t ZDICT_trainFromBuffer_legacy(void* dictBuffer, size_t dictBufferCapacity,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x234cb04 internal_error(char const*, ...)
/archive/menix/src/cross-tool/gcc/gcc/diagnostic-global-context.cc:787
0x1e277fe crash_signal(int)
/archive/menix/src/cross-tool/gcc/gcc/toplev.cc:325
0x121f924 location_wrapper_p(tree_node const*)
/archive/menix/src/cross-tool/gcc/gcc/tree.h:4598
0x121f924 tree_strip_any_location_wrapper(tree_node*)
/archive/menix/src/cross-tool/gcc/gcc/tree.h:4610
0x121f924 operand_compare::hash_operand(tree_node const*, inchash::hash&, unsigned int)
/archive/menix/src/cross-tool/gcc/gcc/fold-const.cc:4023
0x121fe34 operand_compare::hash_operand(tree_node const*, inchash::hash&, unsigned int)
/archive/menix/src/cross-tool/gcc/gcc/fold-const.cc:4076
0x201aa1e vn_nary_op_compute_hash(vn_nary_op_s*)
/archive/menix/src/cross-tool/gcc/gcc/tree-ssa-sccvn.cc:4539
0x201ae28 vn_nary_op_lookup_1(vn_nary_op_s*, vn_nary_op_s**)
/archive/menix/src/cross-tool/gcc/gcc/tree-ssa-sccvn.cc:4669
0x20231b8 vn_nary_op_lookup_pieces(unsigned int, tree_code, tree_node*, tree_node**, vn_nary_op_s**)
/archive/menix/src/cross-tool/gcc/gcc/tree-ssa-sccvn.cc:4691
0x20231b8 visit_phi(gimple*, bool*, bool)
/archive/menix/src/cross-tool/gcc/gcc/tree-ssa-sccvn.cc:6535
0x2021a0f process_bb(rpo_elim&, basic_block_def*, bool, bool, bool, bool, bool, bitmap_head*, bool)
/archive/menix/src/cross-tool/gcc/gcc/tree-ssa-sccvn.cc:8526
0x201fbbd do_rpo_vn_1(function*, edge_def*, bitmap_head*, bool, bool, bool, vn_lookup_kind)
/archive/menix/src/cross-tool/gcc/gcc/tree-ssa-sccvn.cc:9210
0x2021422 do_rpo_vn(function*, edge_def*, bitmap_head*, bool, bool, bool, vn_lookup_kind)
/archive/menix/src/cross-tool/gcc/gcc/tree-ssa-sccvn.cc:9315
0x214d75d (anonymous namespace)::pass_vectorize::execute(function*)
/archive/menix/src/cross-tool/gcc/gcc/tree-vectorizer.cc:1429
To Reproduce
Made a script to repro:
#!/usr/local/bin/bash -ex
export PATH="$PWD/prefix/bin:$PATH"
NPROC=$(nproc || echo 6)
ROOTDIR="$PWD"
TARGET="powerpc64le-unknown-freebsd15.0"
PREFIX="$ROOTDIR/prefix"
SYSROOT="$ROOTDIR/sysroot/$TARGET"
FREEBSD_ARCH=powerpc/powerpc64le
CMAKE_ARCH=ppc64le
mkdir -p "$PREFIX"
install_freebsd_sysroot() {
VERSION="15.1-RELEASE"
FTPSITE="https://download.freebsd.org/ftp"
mkdir -p "$SYSROOT"
[ -f "$SYSROOT/base.txz" ] || wget -O "$SYSROOT/base.txz" "$FTPSITE/releases/$FREEBSD_ARCH/$VERSION/base.txz"
[ -d "$SYSROOT/usr" ] || tar -C "$SYSROOT" -xvzf "$SYSROOT/base.txz"
}
build_hosted_binutils_gdb() {
BUILDDIR="$ROOTDIR/build/$TARGET-binutils-gdb"
SRCDIR="$ROOTDIR/binutils-gdb"
CONFIGURE_FLAGS=(
--prefix="$PREFIX"
--target="$TARGET"
--without-libiconv-prefix
--with-sysroot="$SYSROOT"
--enable-threads=posix
--disable-werror
--disable-intl
--disable-nls
)
[ -d "$SRCDIR" ] || git clone --depth=1 https://github.com/gnutools/binutils-gdb.git "$SRCDIR"
mkdir -p "$BUILDDIR"
cd "$BUILDDIR"
[ -f "$BUILDDIR/Makefile" ] || "$SRCDIR/configure" "${CONFIGURE_FLAGS[@]}"
gmake -j $NPROC
which -- "${TARGET}-as" || {
gmake install
}
cd ..
}
build_hosted_gcc() {
BUILDDIR="$ROOTDIR/build/$TARGET-gcc"
SRCDIR="$ROOTDIR/gcc"
CONFIGURE_FLAGS=(
--prefix="$PREFIX"
--target="$TARGET"
--with-sysroot="$SYSROOT"
--with-abi=elfv2
--enable-gnu-indirect-function
--enable-initfini-array
--with-system-zlib
--without-zstd
--enable-libstdcxx-threads=yes
--enable-languages=c,c++
--enable-threads=posix
--disable-multilib
--disable-gnu-unique-object
--disable-libsanitizer
--disable-libquadmath
--disable-bootstrap
--disable-checking
--disable-libgomp
--disable-libssp
--disable-libvtv
--disable-shared
--disable-gcov
--disable-lto
--disable-cet
--disable-nls
)
which -- "${TARGET}-as"
[ -d "$SRCDIR" ] || git clone --depth=1 https://github.com/gcc-mirror/gcc "$SRCDIR"
mkdir -p "$BUILDDIR"
cd "$BUILDDIR"
[ -f "$BUILDDIR/Makefile" ] || "$SRCDIR/configure" "${CONFIGURE_FLAGS[@]}"
gmake all-gcc -j $NPROC
gmake all-target-libgcc -j $NPROC
gmake all-target-libstdc++-v3 -j $NPROC
which -- "${TARGET}-gcc" || {
gmake install-gcc -j $NPROC
gmake install-target-libgcc -j $NPROC
gmake install-target-libstdc++-v3 -j $NPROC
}
cd ..
}
generate_cmake_toolchain_file() {
FILE="$ROOTDIR/$TARGET-toolchain.cmake"
[ -f "$FILE" ] || cat << EOF >"$FILE"
set(CMAKE_SYSROOT "$SYSROOT")
set(CMAKE_PREFIX_PATH "$SYSROOT")
set(CMAKE_STAGING_PREFIX "$PREFIX")
set(PKG_CONFIG_EXECUTABLE "$ROOTDIR/pkg-config")
set(CMAKE_SYSTEM_NAME "FreeBSD")
set(CMAKE_SYSTEM_PROCESSOR "$CMAKE_ARCH")
set(CMAKE_C_COMPILER $PREFIX/bin/$TARGET-gcc)
set(CMAKE_CXX_COMPILER $PREFIX/bin/$TARGET-g++)
set(CMAKE_ASM_COMPILER $PREFIX/bin/$TARGET-gcc)
set(CMAKE_LINKER $PREFIX/bin/$TARGET-g++)
set(CMAKE_C_FLAGS "")
set(CMAKE_CXX_FLAGS "")
set(CMAKE_C_HOST_COMPILER clang)
set(CMAKE_CXX_HOST_COMPILER clang++)
set(CMAKE_ASM_HOST_COMPILER clang)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
EOF
}
install_freebsd_sysroot
mkdir -p "$ROOTDIR/build"
build_hosted_binutils_gdb
build_hosted_gcc
generate_cmake_toolchain_file
cd "$ROOTDIR"
[ -d zstd ] || git clone --depth=1 https://github.com/facebook/zstd
cd zstd/build/cmake
cmake -S . -B build-cmake \
-DCMAKE_TOOLCHAIN_FILE="$ROOTDIR/$TARGET-toolchain.cmake" \
-DCMAKE_BUILD_TYPE=Release \
-DZSTD_BUILD_SHARED=OFF
cmake --build build-cmake -- -j$NPROC
Expected behavior
No internal compiler error.
Screenshots and charts
N/A
Desktop (please complete the following information):
- OS: FreeBSD
- Version 15
- Compiler clang (host)
- Flags N/A
- Other relevant hardware specs N/A
- Build system CMake
Additional context
gcc commit: 6e71afffd4c0a9a872790826920548edc3360173
binutils-gdb commit: 421bec796fa3a06179856da870a13cf71ddf5df2
- Ngôn ngữ chính
- C
- Star
- 28.1k
- Fork
- 2.7k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của facebook/zstd
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
cmake: AddZstdCompilationFlags still depends on C++ after #4357Có thể đã có người làm @Tyagiquamar đã nhận 29 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
ZSTD_compressSequencesAndLiterals() does not enforce its documented litCapacity >= litSize + 8 contract — the implemented check is 8 bytes weaker than the API documentation, its own error message, and the introducing commitCó thể đã có người làm @KSAGlory đã nhận 49 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
seekable_format warning with -DNDEBUG: potential uninitialised local variable newOffset usedCó thể đã có người làm @i098 đã nhận 18 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Tất cả issue của facebook/zstd
Issue tương tự
-
GPU-UNLOCK RTX 4070 (2786) Gigabyte 1458:416C: cold boot AND warm reboot unlock, Ubuntu 26.04Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
JustAResearcher/gpu-unlock-ada#124 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
inflate: total_in uses plain += on c_ulong (32-bit on Windows), panics in debug for streams > 4 GiBĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
trifectatechfoundation/zlib-rs#570 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
vim.filetype.match() prefixes a URL buffer name with the cwd before passing it to filetype functionsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày