Closed falkTX closed 3 years ago
also fftw should be header-only dependency.
Actually it doesn't seem to use fftw even as a shared lib, i checked with ldd, and there's no mention of it in any meson build files. :?
JUCE stuff cant link to it directly because it is GPL, so they dlopen the lib during runtime.
you can use strings vitalium.so | grep fftw
and you should see some stuff printed.
I see. thanks; but:
~
›strings /nix/store/n0nyckzp2mxsfmpw580qs29mi47yxzcn-distrho-ports/lib/lv2/vitalium.lv2/vitalium.so | rg fftw3
libfftw3f.so.3
~
›ldd /nix/store/n0nyckzp2mxsfmpw580qs29mi47yxzcn-distrho-ports/lib/lv2/vitalium.lv2/vitalium.so
linux-vdso.so.1 (0x00007ffeb052f000)
libdl.so.2 => /nix/store/hp8wcylqr14hrrpqap4wdrwzq092wfln-glibc-2.32-37/lib/libdl.so.2 (0x00007fed4a197000)
libfftw3f.so.3 => /nix/store/k4la012nqx1fql8wik7rvxd57r6zjn4s-fftw-single-3.3.9/lib/libfftw3f.so.3 (0x00007fed49ffb000)
libasound.so.2 => /nix/store/xn51dcfnjjy402b9pv89ndgnrnxf3pkb-alsa-lib-1.2.4/lib/libasound.so.2 (0x00007fed49efb000)
...
~
›strings /nix/store/3armwgq12jdjsg3dqzy6skkypwq2lkq6-distrho-ports/lib/lv2/vitalium.lv2/vitalium.so | rg fftw3
libfftw3f.so
~
›ldd /nix/store/3armwgq12jdjsg3dqzy6skkypwq2lkq6-distrho-ports/lib/lv2/vitalium.lv2/vitalium.so
linux-vdso.so.1 (0x00007ffee5f44000)
libdl.so.2 => /nix/store/hp8wcylqr14hrrpqap4wdrwzq092wfln-glibc-2.32-37/lib/libdl.so.2 (0x00007f54c0144000)
libasound.so.2 => /nix/store/xn51dcfnjjy402b9pv89ndgnrnxf3pkb-alsa-lib-1.2.4/lib/libasound.so.2 (0x00007f54c0044000)
libfreetype.so.6 => /nix/store/fw7djzcdfnwggfg9d4lq016vbb521z93-freetype-2.10.4/lib/libfreetype.so.6 (0x00007f54bff80000)
...
First one was me linking it in by adding it to the meson, and changing config, second one is without even having fftw in the nix build inputs, so libfftw3f is there even when you don't have it. Both have fftw3 there, but the difference is between libfftw3f.so vs libfftw3f.so.3
With fftw3f in the build inputs it is still libfftw3f.so, so i suppose fftw isn't being used?
it is best to remove the 3 in the grep result, as this allows to see if the functions are actually used or not:
strings /usr/lib/lv2/vitalium.lv2/vitalium.so | grep fftw
libfftw3f.so
fftwf_plan_dft_1d
fftwf_plan_dft_r2c_1d
fftwf_plan_dft_c2r_1d
fftwf_destroy_plan
fftwf_execute_dft
fftwf_execute_dft_r2c
fftwf_execute_dft_c2r
Right.
~
›strings /nix/store/n0nyckzp2mxsfmpw580qs29mi47yxzcn-distrho-ports/lib/lv2/vitalium.lv2/vitalium.so | rg fftw
fftwf_plan_dft_1d
fftwf_plan_dft_r2c_1d
fftwf_plan_dft_c2r_1d
fftwf_execute_dft_c2r
fftwf_destroy_plan
fftwf_execute_dft
fftwf_execute_dft_r2c
libfftw3f.so.3
/nix/store/k4la012nqx1fql8wik7rvxd57r6zjn4s-fftw-single-3.3.9/lib:/nix/store/xn51dcfnjjy402b9pv89ndgnrnxf3pkb-alsa-lib-1.2.4/lib:/nix/store/fw7djzcdfnwggfg9d4lq016vbb521z93-freetype-2.10.4/lib:/nix/store/57wzvxk457izfpg1ir6xp3pkgidq5y02-libGL-1.3.2/lib:/nix/store/aq0wqny5gw6jaf4sr24fp7baf097pfla-libX11-1.7.0/lib:/nix/store/hp8wcylqr14hrrpqap4wdrwzq092wfln-glibc-2.32-37/lib:/nix/store/z5l2fm9byiz5yr82iznkv2rynr85ajnv-gcc-10.2.0-lib/lib
~
›strings /nix/store/3armwgq12jdjsg3dqzy6skkypwq2lkq6-distrho-ports/lib/lv2/vitalium.lv2/vitalium.so | rg fftw
libfftw3f.so
fftwf_plan_dft_1d
fftwf_plan_dft_r2c_1d
fftwf_plan_dft_c2r_1d
fftwf_destroy_plan
fftwf_execute_dft
fftwf_execute_dft_r2c
fftwf_execute_dft_c2r
Most notable is that it has the actual lib path.
also fftw should be header-only dependency.