summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-05-02 17:00:56 +0100
committerIan Lynagh <igloo@earth.li>2012-05-02 17:00:56 +0100
commit3a8c7c8ee122a7704645aabc226c79a9477a7394 (patch)
treed317c8d1b47ef9e0a902ec1cc6fc4404f4d9cd58
parent18b4ad9afeba5a0e9a8858ff13ee4554a3c8d024 (diff)
downloadhaskell-3a8c7c8ee122a7704645aabc226c79a9477a7394.tar.gz
More Win64 ghci fixes
-rw-r--r--rts/Linker.c161
-rw-r--r--rts/package.conf.in1
2 files changed, 162 insertions, 0 deletions
diff --git a/rts/Linker.c b/rts/Linker.c
index 4e65713138..229d45bd0d 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -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)
diff --git a/rts/package.conf.in b/rts/package.conf.in
index 130130227d..4d659f8a0f 100644
--- a/rts/package.conf.in
+++ b/rts/package.conf.in
@@ -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 */