Hi all,
When I upgraded wine-develfrom 1.0 to 1.1.7, my winelib app that uses __TRY no longer links. It complains that RtlUnwind cannot be found. I can see that RtlUnwind was added to wine/exception.h, but I am not sure how to fix it.
I tried adding -lntdll and -lwine to the link command line but it didn't help. Any suggestions?
Thanks! ... mo
PS: Here's the linker line I am using and the error returns...
wineg++ -DNDEBUG=1 -O3 -DBOOST_POSIX_API -DBOOST_POSIX_PATH -DALSA=1 -DMUSE_SSE -Wall -Werror -D__STDC_LIMIT_MACROS=1 -I/home/most/Desktop/cvs/muse/receptor2/rm-host -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/hotspot -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/medioid -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/uniwire -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/muselock -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../external/vst/vstsdk2.4 -I/usr/include/xmlwrapp -I/usr/include/libxml2 -Wb,--3gb -o rm-host.exe.so ChildView.o IsFileOpen.o SerialDevice.o SystemInterface.o Alert.o AudioFader.o AutoAddPage.o Balancer.o BankButton.o BankPatch.o BankPatchPanel.o BufferSizePanel.o BypassPanel.o ChannelDetail.o ChannelStrip.o CopyPanel.o CopyPatchPanel.o CopySwitch.o CPUGauge.o DeletePanel.o Dial.o DualCorePanel.o EditorMenu.o EditPage.o EditParametersPanel.o EditStrip.o EffectPage.o FacelessPage.o FrontPanel.o FrontPanelPage.o GeberDevice.o GeberFrontPanel.o GuitarMonitor.o HostApp.o Host.o HostHandleMidi.o HostInput.o HostLevels.o HostMixer.o HostPage.o HostPlugin.o HostPluginList.o HostPluginOutput.o HostTrack.o Icon.o InformationPanel.o InitializePanel.o InputLevelPanel.o InstallPanel.o InstStrip.o ListenToMidiPanel.o LoadBlankPanel.o LockPanel.o MasterStack.o MetersPanel.o MidiFilterPopup.o MidiMonitorPanel.o MixerStatus.o MixPage.o MultiPage.o MutePanel.o Navigation_hotspot.o OneColumnPopup.o OutputAssignmentPanel.o OutputPopup.o OtherProgramChangesPanel.o PanelParameters.o PanicPanel.o ParameterPanel.o PatchButton.o PatchReport.o PluginControllersPanel.o PluginMenu.o PluginPanel.o PluginsToIgnore.o PluginTypePanel.o Preferences.o PrePostPanel.o ProgramChannelPanel.o ProgramChangeModePanel.o ReceptorAudioControl.o ReceptorNamePanel.o ReceptorXmlRpc.o RemapPanel.o RenamePanel.o RenamePatchPanel.o ReorderPopup.o RoutePanel.o RouteStack.o SampleClockPanel.o SampleClockPopup.o SampleRatePanel.o SampleRatePopup.o SavePatch.o SavePatchPanel.o SelectChannelPanel.o SendStack.o SendStrip.o SetupPage.o SignalLevel.o SinglePage.o SoloPanel.o SourcePage.o SwitchPanel.o TcpipPanel.o TempoAndTransport.o TempoPanel.o TempoPopups.o TempoSourcePanel.o TimeSignaturePanel.o TrackNamePopup.o TrackStack.o TransposePanel.o TransposePopup.o UninstallPluginsPanel.o UninstallPopup.o UniWirePanel.o UniWireXmlRpcServer.o UnsupportedPlugins.o ViewBankPanel.o ViewBar.o ViewPopup.o VstSettingsCache.o VstSettings.o XmlRpcServer.o XmlSupport.o ZloadPanel.o ZombiePlugins.o ZonePanel.o /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/uniwire/wine-release/libuniwire.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/medioid/wine-release/libmedioid.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/hotspot/wine-release/libhotspot.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/muselock/wine-release/libmuselock.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/muselock/source/win32/PlugInLib.a -ldl -lrt -lasound -lpng -lusb -lcomdlg32 -lxml2 -lxslt -lxmlwrapp -lboost_filesystem -lboost_thread-mt -lgdi32 -lshell32 HostApp.o: In function `__wine_exception_handler(_EXCEPTION_RECORD*, _EXCEPTION_REGISTRATION_RECORD*, _CONTEXT86*, _EXCEPTION_REGISTRATION_RECORD**)': HostApp.cpp:(.text+0x4cb): undefined reference to `RtlUnwind(void*, void*, _EXCEPTION_RECORD*, void*)' HostMixer.o: In function `__wine_exception_handler(_EXCEPTION_RECORD*, _EXCEPTION_REGISTRATION_RECORD*, _CONTEXT86*, _EXCEPTION_REGISTRATION_RECORD**)': HostMixer.cpp:(.text+0x60b): undefined reference to `RtlUnwind(void*, void*, _EXCEPTION_RECORD*, void*)' collect2: ld returned 1 exit status winegcc: g++ failed
Have you tried linking to kernel32 too?
2008/11/6, Michael Ost most@museresearch.com:
Hi all,
When I upgraded wine-develfrom 1.0 to 1.1.7, my winelib app that uses __TRY no longer links. It complains that RtlUnwind cannot be found. I can see that RtlUnwind was added to wine/exception.h, but I am not sure how to fix it.
I tried adding -lntdll and -lwine to the link command line but it didn't help. Any suggestions?
Thanks! ... mo
PS: Here's the linker line I am using and the error returns...
wineg++ -DNDEBUG=1 -O3 -DBOOST_POSIX_API -DBOOST_POSIX_PATH -DALSA=1 -DMUSE_SSE -Wall -Werror -D__STDC_LIMIT_MACROS=1 -I/home/most/Desktop/cvs/muse/receptor2/rm-host -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/hotspot -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/medioid -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/uniwire -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/muselock -I/home/most/Desktop/cvs/muse/receptor2/rm-host/../../../external/vst/vstsdk2.4 -I/usr/include/xmlwrapp -I/usr/include/libxml2 -Wb,--3gb -o rm-host.exe.so ChildView.o IsFileOpen.o SerialDevice.o SystemInterface.o Alert.o AudioFader.o AutoAddPage.o Balancer.o BankButton.o BankPatch.o BankPatchPanel.o BufferSizePanel.o BypassPanel.o ChannelDetail.o ChannelStrip.o CopyPanel.o CopyPatchPanel.o CopySwitch.o CPUGauge.o DeletePanel.o Dial.o DualCorePanel.o EditorMenu.o EditPage.o EditParametersPanel.o EditStrip.o EffectPage.o FacelessPage.o FrontPanel.o FrontPanelPage.o GeberDevice.o GeberFrontPanel.o GuitarMonitor.o HostApp.o Host.o HostHandleMidi.o HostInput.o HostLevels.o HostMixer.o HostPage.o HostPlugin.o HostPluginList.o HostPluginOutput.o HostTrack.o Icon.o InformationPanel.o InitializePanel.o InputLevelPanel.o InstallPanel.o InstStrip.o ListenToMidiPanel.o LoadBlankPanel.o LockPanel.o MasterStack.o MetersPanel.o MidiFilterPopup.o MidiMonitorPanel.o MixerStatus.o MixPage.o MultiPage.o MutePanel.o Navigation_hotspot.o OneColumnPopup.o OutputAssignmentPanel.o OutputPopup.o OtherProgramChangesPanel.o PanelParameters.o PanicPanel.o ParameterPanel.o PatchButton.o PatchReport.o PluginControllersPanel.o PluginMenu.o PluginPanel.o PluginsToIgnore.o PluginTypePanel.o Preferences.o PrePostPanel.o ProgramChannelPanel.o ProgramChangeModePanel.o ReceptorAudioControl.o ReceptorNamePanel.o ReceptorXmlRpc.o RemapPanel.o RenamePanel.o RenamePatchPanel.o ReorderPopup.o RoutePanel.o RouteStack.o SampleClockPanel.o SampleClockPopup.o SampleRatePanel.o SampleRatePopup.o SavePatch.o SavePatchPanel.o SelectChannelPanel.o SendStack.o SendStrip.o SetupPage.o SignalLevel.o SinglePage.o SoloPanel.o SourcePage.o SwitchPanel.o TcpipPanel.o TempoAndTransport.o TempoPanel.o TempoPopups.o TempoSourcePanel.o TimeSignaturePanel.o TrackNamePopup.o TrackStack.o TransposePanel.o TransposePopup.o UninstallPluginsPanel.o UninstallPopup.o UniWirePanel.o UniWireXmlRpcServer.o UnsupportedPlugins.o ViewBankPanel.o ViewBar.o ViewPopup.o VstSettingsCache.o VstSettings.o XmlRpcServer.o XmlSupport.o ZloadPanel.o ZombiePlugins.o ZonePanel.o /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/uniwire/wine-release/libuniwire.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/medioid/wine-release/libmedioid.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/hotspot/wine-release/libhotspot.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/muselock/wine-release/libmuselock.a /home/most/Desktop/cvs/muse/receptor2/rm-host/../../../muse/libraries/muselock/source/win32/PlugInLib.a -ldl -lrt -lasound -lpng -lusb -lcomdlg32 -lxml2 -lxslt -lxmlwrapp -lboost_filesystem -lboost_thread-mt -lgdi32 -lshell32 HostApp.o: In function `__wine_exception_handler(_EXCEPTION_RECORD*, _EXCEPTION_REGISTRATION_RECORD*, _CONTEXT86*, _EXCEPTION_REGISTRATION_RECORD**)': HostApp.cpp:(.text+0x4cb): undefined reference to `RtlUnwind(void*, void*, _EXCEPTION_RECORD*, void*)' HostMixer.o: In function `__wine_exception_handler(_EXCEPTION_RECORD*, _EXCEPTION_REGISTRATION_RECORD*, _CONTEXT86*, _EXCEPTION_REGISTRATION_RECORD**)': HostMixer.cpp:(.text+0x60b): undefined reference to `RtlUnwind(void*, void*, _EXCEPTION_RECORD*, void*)' collect2: ld returned 1 exit status winegcc: g++ failed
2008/11/6 Michael Ost most@museresearch.com:
Hi all,
When I upgraded wine-develfrom 1.0 to 1.1.7, my winelib app that uses __TRY no longer links. It complains that RtlUnwind cannot be found. I can see that RtlUnwind was added to wine/exception.h, but I am not sure how to fix it.
I tried adding -lntdll and -lwine to the link command line but it didn't help. Any suggestions?
Yes, you need to link to ntdll. Linking to libwine shouldn't be necessary. Please post the command line you are using and errors you are getting even when you link to ntdll.
"Rob Shearman" robertshearman@gmail.com wrote:
When I upgraded wine-develfrom 1.0 to 1.1.7, my winelib app that uses __TRY no longer links. It complains that RtlUnwind cannot be found. I can see that RtlUnwind was added to wine/exception.h, but I am not sure how to fix it.
I tried adding -lntdll and -lwine to the link command line but it didn't help. Any suggestions?
Yes, you need to link to ntdll. Linking to libwine shouldn't be necessary. Please post the command line you are using and errors you are getting even when you link to ntdll.
This should be fixed in git now, Alexandre added C++ wrappers for exported APIs into public Wine .h files.
Rob Shearman wrote:
2008/11/6 Michael Ost most@museresearch.com:
Hi all,
When I upgraded wine-develfrom 1.0 to 1.1.7, my winelib app that uses __TRY no longer links. It complains that RtlUnwind cannot be found. I can see that RtlUnwind was added to wine/exception.h, but I am not sure how to fix it.
I tried adding -lntdll and -lwine to the link command line but it didn't help. Any suggestions?
Yes, you need to link to ntdll. Linking to libwine shouldn't be necessary. Please post the command line you are using and errors you are getting even when you link to ntdll.
I tried linking to ntdll and kernel32, but same result. Unless I am linking in the wrong way? Command line and result are below.
BTW - I thought that wineg++ linked in ntdll and kernel32 automatically...?
Thanks! ... mo
PS: Command line that builds test.o and links the app that fails:
wineg++ -UNDEBUG -g -O0 -Wall -Werror -I/home/most/Desktop/cvs/sandbox/mo/vst-player/make/../source -I/home/most/Desktop/cvs/sandbox/mo/vst-player/make/../../../..//muse/libraries/medioid -I/home/most/Desktop/cvs/sandbox/mo/vst-player/make/../../../..//muse/libraries/muselock -c -MMD -MP -o test.o /home/most/Desktop/cvs/sandbox/mo/vst-player/make/../source/win32/test.cpp
wineg++ -UNDEBUG -g -O0 -Wall -Werror -I/home/most/Desktop/cvs/sandbox/mo/vst-player/make/../source -I/home/most/Desktop/cvs/sandbox/mo/vst-player/make/../../../..//muse/libraries/medioid -I/home/most/Desktop/cvs/sandbox/mo/vst-player/make/../../../..//muse/libraries/muselock -o vst-player.exe.so VstPlayerApp.o test.o PaceablePlugin.o PlayerMixer.o /home/most/Desktop/cvs/sandbox/mo/vst-player/make/../../../..//muse/libraries/medioid/wine-debug/libmedioid.a -lboost_filesystem -ldl -lrt -lasound -lpthread /home/most/Desktop/cvs/sandbox/mo/vst-player/make/../../../..//muse/libraries/muselock/wine-debug/libmuselock.a /home/most/Desktop/cvs/sandbox/mo/vst-player/make/../../../..//muse/libraries/muselock/source/win32/PlugInLib.a -lusb -lcomdlg32 -lgdi32 -lcomdlg32 -lntdll -lkernel32 test.o: In function `__wine_rtl_unwind': /usr/include/wine/exception.h:250: undefined reference to `RtlUnwind(void*, void*, _EXCEPTION_RECORD*, void*)' PlayerMixer.o: In function `__wine_rtl_unwind': /usr/include/wine/exception.h:250: undefined reference to `RtlUnwind(void*, void*, _EXCEPTION_RECORD*, void*)' collect2: ld returned 1 exit status winegcc: g++ failed
PPS: test.cpp source that uses __TRY:
#include <windows.h> // WinMain #include <wine/exception.h> // __TRY
void test_function();
LONG WINAPI process_exception_handler(EXCEPTION_POINTERS* exceptions) { return(EXCEPTION_EXECUTE_HANDLER); }
void test_function() { __TRY { } __EXCEPT(process_exception_handler) { } __ENDTRY }
Michael Ost most@museresearch.com writes:
When I upgraded wine-develfrom 1.0 to 1.1.7, my winelib app that uses __TRY no longer links. It complains that RtlUnwind cannot be found. I can see that RtlUnwind was added to wine/exception.h, but I am not sure how to fix it.
I tried adding -lntdll and -lwine to the link command line but it didn't help. Any suggestions?
http://source.winehq.org/git/wine.git/?a=commitdiff;h=e21cbfe7e81c1d8d0bffde...
Alexandre Julliard wrote:
Michael Ost most@museresearch.com writes:
When I upgraded wine-develfrom 1.0 to 1.1.7, my winelib app that uses __TRY no longer links. It complains that RtlUnwind cannot be found. I can see that RtlUnwind was added to wine/exception.h, but I am not sure how to fix it.
I tried adding -lntdll and -lwine to the link command line but it didn't help. Any suggestions?
http://source.winehq.org/git/wine.git/?a=commitdiff;h=e21cbfe7e81c1d8d0bffde...
That did it. Thanks, you old wine-o you... mo