DISTRHO / DISTRHO-Ports

Linux audio plugins and LV2 ports
http://distrho.sourceforge.net/ports
252 stars 44 forks source link

Vitalium wrongly links to ALSA #71

Closed falkTX closed 3 years ago

falkTX commented 3 years ago

also fftw should be header-only dependency.

kanashimia commented 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. :?

falkTX commented 3 years ago

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.

kanashimia commented 3 years ago

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?

falkTX commented 3 years ago

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
kanashimia commented 3 years ago

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.