OpenBLAS: OpenBLAS 0.3.24 fails on FreeBSD port
Description
OpenBLAS 0.3.24 fails to build scipy during configure and some of octave-forge package at runtime on some CPUs. The failure is caused when I used CLANG and enabled OPENMP, even if OpenBLAS’s regression test passed.
A FreeBSD committer says about this issue:
E.g. such an error has been reported for MacPorts: https://github.com/OpenMathLib/OpenBLAS/issues/4239. This is not exactly the same one, but there are some common points. In their case it seems caused by a combination of some versions of clang × some version of the linker.
Environment
uname -a
FreeBSD blizzard 13.2-RELEASE-p4 FreeBSD 13.2-RELEASE-p4 GENERIC amd64
clang --version
FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)
Target: x86_64-unknown-freebsd13.2
Thread model: posix
InstalledDir: /usr/bin
gfortran12 --version
GNU Fortran (FreeBSD Ports Collection) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Other information
- bug report on FreeBSD bugzilla https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273219
- bug report about scipy build crash https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274284
About this issue
- Original URL
- State: closed
- Created 8 months ago
- Comments: 48 (14 by maintainers)
The question is if all of OpenMP initialization fails or “only” the call to omp_get_max_threads (I need to emulate this by reading any OMP_NUM_THREADS directly instead), and if this is specific to the libomp from the (older) LLVM version that FreeBSD carries. So far I still see nothing wrong with calling omp_get_max_threads where we do.
Sorry I forgot to report. I do not found
libgomp.soin the gdb output.make science/scipyseems to be stuck at ?? () inlibomp.so.gdb output
<div> </div>The thread of makenpz process seems to calls openblas library. Only privileged user can attach some process running in poudriere’s jail.
YES. I make sure 3 packages I talk about are built on the same machine. Because poudriere builds ALL DEPENDENCIES FROM SOURCE and installs them to chroot based system (called jail) before building some port. For example before scipy build poudriere builds 118 dependencies (including gcc, gfortran, OpenBLAS and so forth) using base system compiler. Please refer the brief document about poudriere package build system. https://man.freebsd.org/cgi/man.cgi?poudriere Is there anything for supporting for your investigation for finding a way to narrow this couse? I’m really having trouble solving this problem…
In addition, I think that AVX instructions are irrelevant for this problem because it is disabled in batch build settings except in the case it is enabled explicitly.