From: Pali Rohár pali@kernel.org
Windows 3.0, Windows 3.1 and Windows 95 have library WIN87EM.DLL with symbol name __FPMATH, not with _FPMATH. So fix the __FPMATH symbol name.
This change fixes running Windows 3.0 CALC.EXE application, which imports WIN87EM.DLL symbols by name. Without this change the CALC.EXE fails on: "No implementation for WIN87EM.__FPMATH, setting to 0xdeadbeef"
Other Windows application, including Windows 3.1+ CALC.EXE application, import WIN87EM.DLL symbols by ordinals, so are not affected by this issue.
Signed-off-by: Pali Rohár pali@kernel.org --- dlls/win87em.dll16/win87em.c | 4 ++-- dlls/win87em.dll16/win87em.dll16.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/win87em.dll16/win87em.c b/dlls/win87em.dll16/win87em.c index 9a0029b98e9..883d3c1feb3 100644 --- a/dlls/win87em.dll16/win87em.c +++ b/dlls/win87em.dll16/win87em.c @@ -97,9 +97,9 @@ static void WIN87_Init( CONTEXT *context ) }
/*********************************************************************** - * _fpMath (WIN87EM.1) + * __fpMath (WIN87EM.1) */ -void WINAPI _fpMath( CONTEXT *context ) +void WINAPI __fpMath( CONTEXT *context ) { TRACE("(cs:eip=%04lx:%04lx es=%04lx bx=%04lx ax=%04lx dx=%04lx)\n", context->SegCs, context->Eip, context->SegEs, context->Ebx, diff --git a/dlls/win87em.dll16/win87em.dll16.spec b/dlls/win87em.dll16/win87em.dll16.spec index 0b9024c2d22..dbd1af3da7c 100644 --- a/dlls/win87em.dll16/win87em.dll16.spec +++ b/dlls/win87em.dll16/win87em.dll16.spec @@ -1,4 +1,4 @@ -1 pascal -register _fpMath() _fpMath +1 pascal -register __fpMath() __fpMath 3 pascal -ret16 __WinEm87Info(ptr word) __WinEm87Info 4 pascal -ret16 __WinEm87Restore(ptr word) __WinEm87Restore 5 pascal -ret16 __WinEm87Save(ptr word) __WinEm87Save