The following patch to dlls/winedos/relay.c revision 1.2 date: 2003/06/23 03:35:51; author: julliard; state: Exp; lines: +39 -32 Jukka Heinonen <jhei@iki.fi> Add IRQ acknowledge handler for internal IRQs. Change DPMI asynchronous event handling. Always use alternate stack in DPMI relays and check for pending events after original stack has been restored. broke compilation on non-Linux platforms as follows: /usr/bin/gcc -c -I. -I. -I../../include -I../../include -D_REENTRANT -fPIC -D__WINESRC__ -Wall -mpreferred-stack-boundary=2 -gstabs+ -Wpointer-arith -g -O2 -o winedos.spec.o winedos.spec.c /usr/bin/gcc -shared -Wl,-Bsymbolic,-z,defs winedos.spec.o wprocs.spec.o devices.o dma.o dosaspi.o dosconf.o dosvm.o fpu.o himem.o int09.o int10.o int11.o int12.o int13.o int15.o int16.o int17.o int19.o int1a.o int20.o int21.o int25.o int26.o int29.o int2a.o int2f.o int31.o int33.o int41.o int4b.o int5c.o int67.o interrupts.o ioports.o module.o relay.o soundblaster.o timer.o vga.o vxd.o xms.o winedos.dll.dbg.o -o winedos.dll.so -L../../dlls -L../../libs/wine -lwine -L../../libs/unicode -lwine_unicode -L../../libs/port -lwine_port -lm -lc relay.o: In function `DOSVM_RelayHandler': /.amd_mnt/nashira/files5/test/wine/dlls/winedos/relay.c:145: undefined reference to `DOSVM_SendQueuedEvents' gmake[2]: *** [winedos.dll.so] Error 1 gmake[2]: Leaving directory `/.amd_mnt/nashira/files5/test/wine/dlls/winedos' gmake[1]: *** [winedos] Error 2 I chose the fix below instead of yet-another-dummy-functions, because that reduces the #ifdef-ed portion of the code and thus improves continous build testing on various platforms (and provides a little bit of functionality, though that probably doesn't matter much). Gerald ChangeLog: Expose part of DOSVM_SendQueuedEvents() also for platforms without MZ_SUPPORTED. Index: dosvm.c =================================================================== RCS file: /home/wine/wine/dlls/winedos/dosvm.c,v retrieving revision 1.41 diff -u -3 -p -r1.41 dosvm.c --- dosvm.c 23 Jun 2003 03:35:51 -0000 1.41 +++ dosvm.c 23 Jun 2003 09:47:51 -0000 @@ -61,8 +61,6 @@ WINE_DECLARE_DEBUG_CHANNEL(relay); WORD DOSVM_psp = 0; WORD DOSVM_retval = 0; -#ifdef MZ_SUPPORTED - #ifdef HAVE_SYS_VM86_H # include <sys/vm86.h> #endif @@ -220,6 +218,8 @@ void DOSVM_SendQueuedEvents( CONTEXT86 * NtCurrentTeb()->vm86_pending = 0; } +#ifdef MZ_SUPPORTED + if (!ISV86(context) && context->SegCs == old_cs && context->Eip == old_ip) { /* @@ -241,10 +241,17 @@ void DOSVM_SendQueuedEvents( CONTEXT86 * NtCurrentTeb()->vm86_pending |= VIP_MASK; } +#else + + FIXME("No DOS .exe file support on this platform (yet)\n"); + +#endif /* MZ_SUPPORTED */ + LeaveCriticalSection(&qcrit); } +#ifdef MZ_SUPPORTED /*********************************************************************** * QueueEvent (WINEDOS.@) */ @@ -648,7 +655,7 @@ void WINAPI DOSVM_QueueEvent( INT irq, I } } -#endif +#endif /* MZ_SUPPORTED */ /**********************************************************************