What happened to __TRY?
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(a)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(a)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
"Rob Shearman" <robertshearman(a)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. -- Dmitry.
Rob Shearman wrote:
2008/11/6 Michael Ost <most(a)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(a)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 julliard(a)winehq.org
Alexandre Julliard wrote:
Michael Ost <most(a)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
participants (5)
-
Alexandre Julliard -
Dmitry Timoshkov -
Maarten Lankhorst -
Michael Ost -
Rob Shearman