steinbergmedia / vst3sdk

VST 3 Plug-In SDK
Other
1.65k stars 162 forks source link

Build Failure on Fedora 40 #125

Closed ycollet closed 7 months ago

ycollet commented 7 months ago

A link problem during the build on Fedora 40 with gcc-14.0.1

/usr/lib64/ccache/g++ -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wno-multichar -g -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -shared  -o ../../../../VST3/Debug/noteexpressiontext.vst3/Contents/x86_64-linux/noteexpressiontext.so CMakeFiles/noteexpressiontext.dir/source/plug.cpp.o CMakeFiles/noteexpressiontext.dir/source/plugcontroller.cpp.o CMakeFiles/noteexpressiontext.dir/source/plugentry.cpp.o CMakeFiles/noteexpressiontext.dir/__/__/__/source/main/linuxmain.cpp.o  -lstdc++fs -lpthread -ldl ../../../../lib/libvstgui_support.a ../../../../lib/libsdk.a ../../../../lib/libvstgui_uidescription.a ../../../../lib/libvstgui.a /usr/lib64/libSM.so /usr/lib64/libICE.so /usr/lib64/libX11.so /usr/lib64/libXext.so /usr/lib64/libfreetype.so -lxcb -lxcb-util -lxcb-cursor -lxcb-keysyms -lxcb -lxcb-util -lxcb-cursor -lxcb-keysyms -lxcb-xkb -lxkbcommon -lxkbcommon-x11 -lxkbcommon -lxkbcommon-x11 -lglib-2.0 -lcairo -lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lcairo -lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lharfbuzz -lfontconfig -lfreetype -lfontconfig -lfreetype /usr/lib64/libexpat.so ../../../../lib/libsdk_common.a ../../../../lib/libbase.a ../../../../lib/libpluginterfaces.a -lstdc++fs -lpthread -ldl
cd /home/collette/rpmbuild/BUILD/vst3sdk/redhat-linux-build/bin && /home/collette/rpmbuild/BUILD/vst3sdk/redhat-linux-build/bin/moduleinfotool -create -version 3.7.11.0 -path /home/collette/rpmbuild/BUILD/vst3sdk/redhat-linux-build/VST3/Debug/dataexchange.vst3 -output /home/collette/rpmbuild/BUILD/vst3sdk/redhat-linux-build/VST3/Debug/dataexchange.vst3/Contents/Resources/moduleinfo.json
dlopen failed.
**/home/collette/rpmbuild/BUILD/vst3sdk/redhat-linux-build/VST3/Debug/dataexchange.vst3/Contents/x86_64-linux/dataexchange.so: undefined symbol: _ZN9Steinberg3Vst19WaveformViewManager9preRenderEPN6VSTGUI13CExternalViewEP10NVGcontext**
gmake[2]: *** [public.sdk/samples/vst/dataexchange/CMakeFiles/dataexchange.dir/build.make:200: VST3/Debug/dataexchange.vst3/Contents/x86_64-linux/dataexchange.so] Error 1
gmake[2]: *** Deleting file 'VST3/Debug/dataexchange.vst3/Contents/x86_64-linux/dataexchange.so'
gmake[2]: Leaving directory '/home/collette/rpmbuild/BUILD/vst3sdk/redhat-linux-build'
gmake[1]: *** [CMakeFiles/Makefile2:1395: public.sdk/samples/vst/dataexchange/CMakeFiles/dataexchange.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

ldd is looking for

c++filt _ZN9Steinberg3Vst19WaveformViewManager9preRenderEPN6VSTGUI13CExternalViewEP10NVGcontext
Steinberg::Vst::WaveformViewManager::preRender(VSTGUI::CExternalView*, NVGcontext*)

Is he source code, I performed a grep and:

grep -r WaveformViewManager::preRender
public.sdk/samples/vst/dataexchange/source/waveformview_metal.mm:bool WaveformViewManager::preRender (VSTGUI::CExternalView* view, NVGcontext* context)
public.sdk/samples/vst/dataexchange/source/waveformview_direct3d.cpp:bool WaveformViewManager::preRender (VSTGUI::CExternalView* view, NVGcontext* context)

So, maybe a Linux implementation is missing.

ycollet commented 7 months ago

The workaround I found is to remove this directory: rm -rf public.sdk/samples/vst/dataexchange/

ygrabit commented 7 months ago

Thanks we will remove the DataExchange for Linux due to missing implementation of the waveformView

ycollet commented 7 months ago

Thanks for this answer !