More Win64 ghci fixes
authorIan Lynagh <igloo@earth.li>
Wed, 2 May 2012 16:00:56 +0000 (17:00 +0100)
committerIan Lynagh <igloo@earth.li>
Wed, 2 May 2012 16:00:56 +0000 (17:00 +0100)
rts/Linker.c
rts/package.conf.in

index 4e65713..229d45b 100644 (file)
@@ -580,12 +580,173 @@ typedef struct _RtsSymbolVal {
       RTS_WIN64_ONLY(SymI_HasProto(strchr))                              \
       RTS_WIN64_ONLY(SymI_HasProto(strtol))                              \
       RTS_WIN64_ONLY(SymI_HasProto(strerror))                            \
+      RTS_WIN64_ONLY(SymI_HasProto(memchr))                              \
+      RTS_WIN64_ONLY(SymI_HasProto(memcmp))                              \
+      RTS_WIN64_ONLY(SymI_HasProto(wcscpy))                              \
+      RTS_WIN64_ONLY(SymI_HasProto(wcslen))                              \
       RTS_WIN64_ONLY(SymI_HasProto(_lseeki64))                           \
+      RTS_WIN64_ONLY(SymI_HasProto(_wchmod))                             \
       RTS_WIN64_ONLY(SymI_HasProto(closesocket))                         \
       RTS_WIN64_ONLY(SymI_HasProto(send))                                \
       RTS_WIN64_ONLY(SymI_HasProto(recv))                                \
       RTS_WIN64_ONLY(SymI_HasProto(bsearch))                             \
       RTS_WIN64_ONLY(SymI_HasProto(CommandLineToArgvW))                  \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateBitmap))                        \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateBitmapIndirect))                \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateCompatibleBitmap))              \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateDIBPatternBrushPt))             \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateDIBitmap))                      \
+      RTS_WIN64_ONLY(SymI_HasProto(SetBitmapDimensionEx))                \
+      RTS_WIN64_ONLY(SymI_HasProto(GetBitmapDimensionEx))                \
+      RTS_WIN64_ONLY(SymI_HasProto(GetStockObject))                      \
+      RTS_WIN64_ONLY(SymI_HasProto(GetObjectW))                          \
+      RTS_WIN64_ONLY(SymI_HasProto(DeleteObject))                        \
+      RTS_WIN64_ONLY(SymI_HasProto(SetDIBits))                           \
+      RTS_WIN64_ONLY(SymI_HasProto(GetDIBits))                           \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateSolidBrush))                    \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateHatchBrush))                    \
+      RTS_WIN64_ONLY(SymI_HasProto(CreatePatternBrush))                  \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateFontW))                         \
+      RTS_WIN64_ONLY(SymI_HasProto(AngleArc)) \
+      RTS_WIN64_ONLY(SymI_HasProto(Arc)) \
+      RTS_WIN64_ONLY(SymI_HasProto(ArcTo)) \
+      RTS_WIN64_ONLY(SymI_HasProto(BeginPath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(BitBlt)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CancelDC)) \
+      RTS_WIN64_ONLY(SymI_HasProto(Chord)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CloseFigure)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CombineRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateCompatibleDC)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateEllipticRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateEllipticRgnIndirect)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreatePen)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreatePolygonRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateRectRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateRectRgnIndirect)) \
+      RTS_WIN64_ONLY(SymI_HasProto(CreateRoundRectRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(DeleteDC)) \
+      RTS_WIN64_ONLY(SymI_HasProto(Ellipse)) \
+      RTS_WIN64_ONLY(SymI_HasProto(EndPath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(EqualRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(ExtSelectClipRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(FillPath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(FillRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(FlattenPath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(FrameRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetArcDirection)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetBkColor)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetBkMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetBrushOrgEx)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetCurrentObject)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetDCOrgEx)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetGraphicsMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetMiterLimit)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetPolyFillMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetRgnBox)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetStretchBltMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetTextAlign)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetTextCharacterExtra)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetTextColor)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetTextExtentPoint32W)) \
+      RTS_WIN64_ONLY(SymI_HasProto(InvertRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(LineTo)) \
+      RTS_WIN64_ONLY(SymI_HasProto(MaskBlt)) \
+      RTS_WIN64_ONLY(SymI_HasProto(MoveToEx)) \
+      RTS_WIN64_ONLY(SymI_HasProto(OffsetRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(PaintRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(PathToRegion)) \
+      RTS_WIN64_ONLY(SymI_HasProto(Pie)) \
+      RTS_WIN64_ONLY(SymI_HasProto(PlgBlt)) \
+      RTS_WIN64_ONLY(SymI_HasProto(PolyBezier)) \
+      RTS_WIN64_ONLY(SymI_HasProto(PolyBezierTo)) \
+      RTS_WIN64_ONLY(SymI_HasProto(Polygon)) \
+      RTS_WIN64_ONLY(SymI_HasProto(Polyline)) \
+      RTS_WIN64_ONLY(SymI_HasProto(PolylineTo)) \
+      RTS_WIN64_ONLY(SymI_HasProto(PtInRegion)) \
+      RTS_WIN64_ONLY(SymI_HasProto(Rectangle)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RectInRegion)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RestoreDC)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RoundRect)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SaveDC)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SelectClipPath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SelectClipRgn)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SelectObject)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SelectPalette)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetArcDirection)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetBkColor)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetBkMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetBrushOrgEx)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetGraphicsMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetMiterLimit)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetPolyFillMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetStretchBltMode)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetTextAlign)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetTextCharacterExtra)) \
+      RTS_WIN64_ONLY(SymI_HasProto(SetTextColor)) \
+      RTS_WIN64_ONLY(SymI_HasProto(StretchBlt)) \
+      RTS_WIN64_ONLY(SymI_HasProto(StrokeAndFillPath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(StrokePath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(TextOutW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(timeGetTime)) \
+      RTS_WIN64_ONLY(SymI_HasProto(WidenPath)) \
+      RTS_WIN64_ONLY(SymI_HasProto(GetFileSecurityW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegCloseKey)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegConnectRegistryW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegCreateKeyExW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegCreateKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegDeleteKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegDeleteValueW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegEnumKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegEnumValueW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegFlushKey)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegLoadKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegNotifyChangeKeyValue)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegOpenKeyExW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegOpenKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegQueryInfoKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegQueryValueExW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegQueryValueW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegReplaceKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegRestoreKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegSaveKeyW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegSetValueExW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegSetValueW)) \
+      RTS_WIN64_ONLY(SymI_HasProto(RegUnLoadKeyW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(SHGetFolderPathW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_SetWindowLongPtrW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GetWindowLongPtrW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_MenuItemFromPoint)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_ChildWindowFromPoint)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_ChildWindowFromPointEx)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_DeleteObject)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_UnmapViewOfFile)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_CloseHandle)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_FreeLibrary)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GetMessageW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_TranslateMessage)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_DispatchMessageW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_DefWindowProcW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GetDIBits)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GlobalAlloc)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GlobalFree)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_CreateFileW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_WriteFile)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_CreateCompatibleBitmap)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_SelectObject)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_Polygon)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_FormatMessageW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp__localtime64)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp__tzname)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp__timezone)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_CreatePipe)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_SetHandleInformation)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GetStdHandle)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GetCurrentProcess)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_DuplicateHandle)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_CreateProcessW)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_TerminateProcess)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp__open_osfhandle)) \
+      RTS_WIN64_ONLY(SymI_NeedsProto(__imp_GetExitCodeProcess)) \
       RTS_MINGW_GETTIMEOFDAY_SYM                         \
       SymI_NeedsProto(closedir)
 
index 1301302..4d659f8 100644 (file)
@@ -35,6 +35,7 @@ extra-libraries:
 #endif
 #ifdef mingw32_HOST_OS
                              ,"wsock32"        /* for the linker */
+                             ,"gdi32"      /* for the linker */
 #endif
 #if defined(DEBUG) && defined(HAVE_LIBBFD)
                              ,"bfd", "iberty"  /* for debugging */