Issue with eselect-ldso -> flexiblas migration

Poncho <[email protected]>
Newsgroups gmane.linux.gentoo.user
Message-ID <[email protected]>
Hello,

A software I'm using, goldencheetah, links against gsl and embedded 
python. The application crashes when I use certain scipy functions with 
the embedded python. (same code works fine in a system python console).

The ebuild is available at 
https://github.com/MeisterP/poncho-overlay/tree/master/app-misc/goldencheetah 
the backtrack is attached.

The sample code crashing the application is

> import pandas as pd
> import numpy as np
> from scipy import signal
> 
> df = pd.DataFrame(np.random.randn(10), columns=['X'])
> df_detrended = pd.DataFrame(signal.detrend(df))


Now why is this a gentoo issue?

If set the useflag
*/* -flexiblas eselect-ldso
and update the system and reemerge scipy gsl goldencheetah everything 
works as expected. So it is a regression related to the eselect-ldso -> 
flexiblas migration

I've never configured anything related to blas/flexiblas on my system. 
It just used to work.

I'm not a developer and I don't understand the problem. Whether it is a 
bug or if it is a configuration issue on my end.

I'd appreciate some help.

Kind regards,
Poncho
bt.txt (text/plain, 5.3 KB)
> Thread 58 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7f4558df36c0 (LWP 338040)]
> 0x0000000000000000 in ?? ()
> (gdb) bt
> #0  0x0000000000000000 in ??? ()
> #1  0x00007f4538ddc18f in ??? () at /usr/lib/python3.13/site-packages/scipy/linalg/_flapack.cpython-313-x86_64-linux-gnu.so
> #2  0x00007f4b5509e643 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #3  0x00007f4b551c1905 in _PyEval_EvalFrameDefault () at /usr/lib64/libpython3.13.so.1.0
> #4  0x00007f4b551cf480 in PyEval_EvalCode () at /usr/lib64/libpython3.13.so.1.0
> #5  0x00007f4b5522e52a in ??? () at /usr/lib64/libpython3.13.so.1.0
> #6  0x00007f4b5522eb98 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #7  0x00007f4b5522f0e9 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #8  0x00007f4b55231763 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #9  0x000055791f445451 in PythonEmbed::runline (this=this@entry=0x55793f2c9790, scriptContext=..., line=...)
>     at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_string.h:238
> #10 0x000055791f45077e in PythonChart::execScript (chart=0x557945d14830) at Charts/PythonChart.cpp:585
> #11 0x000055791f4547c7 in std::__invoke_impl<void, void (*&)(PythonChart*), PythonChart*&> (__f=<synthetic pointer>: <optimized out>)
>     at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:62
> #12 std::__invoke<void (*&)(PythonChart*), PythonChart*&> (__fn=<synthetic pointer>: <optimized out>)
>     at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:98
> #13 std::invoke<void (*&)(PythonChart*), PythonChart*&> (__fn=<synthetic pointer>: <optimized out>)
>     at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional:122
> #14 QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (*)(PythonChart*), PythonChart*)#1}::operator()(void (*)(PythonChart*), PythonChart*) const (__closure=<synthetic pointer>, function=<optimized out>, args#0=<optimized out>)
>     at /usr/include/qt6/QtConcurrent/qtconcurrentstoredfunctioncall.h:117
> #15 std::__invoke_impl<void, QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, void (*)(PythonChart*), PythonChart*>(std::__invoke_other, QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, void (*&&)(PythonChart*), PythonChart*&&) (__f=<synthetic pointer>...)
>     at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:63
> #16 std::__invoke<QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, void (*)(PythonChart*), PythonChart*>(QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, void (*&&)(PythonChart*), PythonChart*&&) (__fn=<synthetic pointer>...) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:98
> #17 std::__apply_impl<QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, std::tuple<void (*)(PythonChart*), PythonChart*>, 0ul, 1ul>(QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, std::tuple<void (*)(PythonChart*), PythonChart*>&&, std::integer_sequence<unsigned long, 0ul, 1ul>)
>     (__f=<synthetic pointer>..., __t=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/tuple:2920
> #18 std::apply<QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, std::tuple<void (*)(PythonChart*), PythonChart*> >(QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*), PythonChart*)#1}, std::tuple<void (*)(PythonChart*), PythonChart*>&&) (__f=<synthetic pointer>..., __t=...)
>     at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/tuple:2935
> #19 QtConcurrent::StoredFunctionCall<void (*)(PythonChart*), PythonChart*>::runFunctor (this=0x557940581c50)
>     at /usr/include/qt6/QtConcurrent/qtconcurrentstoredfunctioncall.h:121
> #20 QtConcurrent::RunFunctionTaskBase<void>::run (this=0x557940581c50) at /usr/include/qt6/QtConcurrent/qtconcurrentrunbase.h:84
> #21 0x00007f4b4768e4b5 in QThreadPoolThread::run (this=0x557949c735b0)
>     at /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthreadpool.cpp:72
> #22 0x00007f4b4760ac0a in operator() (__closure=<optimized out>)
>     at /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthread_unix.cpp:448
> #23 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>)
>     at /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthread_unix.cpp:373
> #24 QThreadPrivate::start (arg=0x557949c735b0) at /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthread_unix.cpp:422
> #25 0x00007f4b46ea4fb1 in start_thread (arg=<optimized out>) at pthread_create.c:448
> #26 0x00007f4b46f26eec in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.