diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 53a8ffc26f..eabab87423 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,151 @@ 2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2009-03-21 15:02 UTC+0100 Viktor Szakats (harbour.01 syenar hu) + * utils/hbmk2/hbmk2.prg + * config/win/icc.cf + * config/win/cygwin.cf + * config/win/msvc.cf + * config/win/owatcom.cf + * config/win/xcc.cf + * config/win/mingw.cf + * config/win/pocc.cf + * Changed Harbour to uniformly link against ws2_32 winsock + lib on Windows. Previous we've been using a mixture of + ws2_32 and wsock32, sometimes both. For some platforms + one of these libs is automatically included by linker, + f.e. for bcc, wsock32 is used. + ! This fixes wsock32 no longer available for mingw64. + ; These platforms should be retested if this causes any + problems, but ws2_32 should be available for all since long. + + * utils/hbmk2/hbmk2.prg + ! Typo in prev commit. + + * source/vm/maindllp.c + * source/vm/extrap.c + ! Fixed for mingw64. + ! Fixed warning for mingw64. + ; TODO: Check for possible regression. + + * contrib/hbodbc/odbc.c + ! Fixed mingw64 warning. + ; TODO: Check for possible regression. + + ; TOFIX: (3rd party dependent contribs not yet included) + Errors/Core: + Temp/ccVJXjZS.s: Assembler messages: + Temp/ccVJXjZS.s:19: Error: Incorrect register `%rax' used with `l' suffix + Temp/ccVJXjZS.s:20: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression + Temp/ccVJXjZS.s:36: Error: Incorrect register `%rax' used with `l' suffix + Temp/ccVJXjZS.s:37: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression + + GTWVG (also lots of warning) + + Warnings/Core: + ../../hbprintf.c: In function 'hb_snprintf': + ../../hbprintf.c:1067: warning: implicit declaration of function 'finite' + ../../hbprintf.c:1148: warning: cast from pointer to integer of different size + ../../itemapi.c: In function 'hb_itemStrBuf': + ../../itemapi.c:2159: warning: implicit declaration of function 'finite' + ../../dbfntx1.c: In function 'hb_ntxTagHeaderCheck': + ../../dbfntx1.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfntx1.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c: In function 'hb_nsxTagHeaderCheck': + ../../dbfnsx1.c:1233: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1235: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c: In function 'hb_nsxPageFree': + ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c: In function 'hb_nsxPageNew': + ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules + ../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules + + Warnings/Contrib: + ../../files.c: In function 'HB_FUN_SETFDATI': + ../../files.c:247: warning: cast to pointer from integer of different size + ../../files.c:268: warning: cast from pointer to integer of different size + ../../getenvrn.c: In function 'HB_FUN_FT_GETE': + ../../getenvrn.c:178: warning: implicit declaration of function 'GetEnvironmentStrings' + ../../getenvrn.c:178: warning: initialization makes pointer from integer without a cast + ../../tpwin.c: In function 'HB_FUN_P_INITPORTSPEED': + ../../tpwin.c:78: warning: cast to pointer from integer of different size + ../../tpwin.c:89: warning: cast to pointer from integer of different size + ../../tpwin.c: In function 'HB_FUN_P_READPORT': + ../../tpwin.c:108: warning: cast to pointer from integer of different size + ../../tpwin.c: In function 'HB_FUN_P_WRITEPORT': + ../../tpwin.c:119: warning: cast to pointer from integer of different size + ../../win_dll.c: In function 'DllExec': + ../../win_dll.c:509: warning: cast from pointer to integer of different size + ../../win_dll.c:603: warning: cast to pointer from integer of different size + ../../win_dll.c:672: warning: cast to pointer from integer of different size + ../../win_dll.c:689: warning: cast to pointer from integer of different size + ../../win_dll.c: In function 'hb_getprocaddress': + ../../win_dll.c:809: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'hb_oleItemToVariant': + ../../win_ole.c:466: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'FreeParams': + ../../win_ole.c:762: warning: cast from pointer to integer of different size + ../../win_ole.c: In function 'hb_oleVariantToItem': + ../../win_ole.c:1092: warning: cast from pointer to integer of different size + ../../win_ole.c: In function 'HB_FUN_CREATEOLEOBJECT': + ../../win_ole.c:1425: warning: cast from pointer to integer of different size + ../../win_ole.c: In function 'HB_FUN_GETOLEOBJECT': + ../../win_ole.c:1478: warning: cast from pointer to integer of different size + ../../win_ole.c: In function 'HB_FUN_OLEADDREF': + ../../win_ole.c:1486: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_OLERELEASEOBJECT': + ../../win_ole.c:1498: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_OLEVALUE': + ../../win_ole.c:1648: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_TOLEAUTO__OLEVALUE': + ../../win_ole.c:1675: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_OLENEWENUMERATOR': + ../../win_ole.c:1703: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_INVOKE': + ../../win_ole.c:1786: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_SET': + ../../win_ole.c:1810: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_GET': + ../../win_ole.c:1834: warning: cast to pointer from integer of different size + ../../win_ole.c: In function 'HB_FUN_TOLEAUTO_ONERROR': + ../../win_ole.c:1861: warning: cast to pointer from integer of different size + ../../win_regc.c: In function 'hb_regkeyconv': + ../../win_regc.c:77: warning: cast to pointer from integer of different size + ../../win_regc.c: In function 'HB_FUN_WIN_REGCREATEKEYEX': + ../../win_regc.c:82: warning: cast to pointer from integer of different size + ../../win_regc.c:96: warning: cast from pointer to integer of different size + ../../win_regc.c: In function 'HB_FUN_WIN_REGOPENKEYEX': + ../../win_regc.c:118: warning: cast from pointer to integer of different size + ../../win_regc.c: In function 'HB_FUN_WIN_REGCLOSEKEY': + ../../win_regc.c:193: warning: cast to pointer from integer of different size + ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_GETITEMRECT': + ../../wapi_commctrl.c:521: warning: value computed is not used + ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_GETIMAGELIST': + ../../wapi_commctrl.c:553: warning: cast from pointer to integer of different size + ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_ADJUSTRECT': + ../../wapi_commctrl.c:632: warning: value computed is not used + ../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_CREATE': + ../../wapi_commctrl.c:782: warning: cast to pointer from integer of different size + ../../wapi_commctrl.c:786: warning: cast from pointer to integer of different size + ../../wapi_winbase.c: In function 'HB_FUN_WAPI_GETMODULEHANDLE': + ../../wapi_winbase.c:83: warning: cast to pointer from integer of different size + ../../hbserv.c: In function 's_serviceSetHBSig': + ../../hbserv.c:638: warning: passing argument 1 of 'SetUnhandledExceptionFilter' from incompatible pointer type + ../../hbxml.c: In function 'HB_FUN_HBXML_DATAREAD': + ../../hbxml.c:2321: warning: cast to pointer from integer of different size + 2009-03-21 14:23 UTC+0100 Viktor Szakats (harbour.01 syenar hu) * INSTALL * utils/hbmk2/hbmk2.prg diff --git a/harbour/config/win/cygwin.cf b/harbour/config/win/cygwin.cf index 7ff0c400b9..d7634096cb 100644 --- a/harbour/config/win/cygwin.cf +++ b/harbour/config/win/cygwin.cf @@ -42,7 +42,7 @@ LINKLIBS += $(foreach lib, $(CONTRIBS), -l$(subst lib,,$(lib))) LINKLIBS += $(foreach lib, $(LIBS), -l$(lib)) # This library is needed for CharToOemBuff() and OemToCharBuff() support. -LINKLIBS += -luser32 -lgdi32 -lwsock32 +LINKLIBS += -luser32 -lgdi32 -lws2_32 # If LIBS specifies the rdd library, add all DB drivers. ifeq ($(findstring rdd,$(LIBS)),rdd) diff --git a/harbour/config/win/icc.cf b/harbour/config/win/icc.cf index 43b39b54e3..292f0bbfa0 100644 --- a/harbour/config/win/icc.cf +++ b/harbour/config/win/icc.cf @@ -50,7 +50,7 @@ ifeq ($(findstring rtl,$(LIBS)),rtl) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT)) endif -LDFLAGS = $(LINKPATHS) user32.lib wsock32.lib advapi32.lib gdi32.lib +LDFLAGS = $(LINKPATHS) user32.lib ws2_32.lib advapi32.lib gdi32.lib AR = xilib.exe ARFLAGS = $(HB_USER_AFLAGS) diff --git a/harbour/config/win/mingw.cf b/harbour/config/win/mingw.cf index 31dc1a4235..32d8e3121c 100644 --- a/harbour/config/win/mingw.cf +++ b/harbour/config/win/mingw.cf @@ -80,7 +80,7 @@ LDLIBS += $(foreach lib, $(LNK_USR_LIB), -l$(lib)) endif # This library is needed for CharToOemBuff() and OemToCharBuff() support. -SYSLIBS = -luser32 -lgdi32 -lwsock32 +SYSLIBS = -luser32 -lgdi32 SYSLIBS += -lwinspool -lcomctl32 -lcomdlg32 -lole32 -loleaut32 -luuid -lmpr -lws2_32 -lmapi32 # NOTE: The empty line directly before 'endef' HAVE TO exist! diff --git a/harbour/config/win/msvc.cf b/harbour/config/win/msvc.cf index d1caea2f4c..c5208b1236 100644 --- a/harbour/config/win/msvc.cf +++ b/harbour/config/win/msvc.cf @@ -56,7 +56,7 @@ ifeq ($(findstring rtl,$(LIBS)),rtl) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT)) endif -LDFLAGS = /nologo $(LINKPATHS) user32.lib wsock32.lib advapi32.lib gdi32.lib +LDFLAGS = /nologo $(LINKPATHS) user32.lib ws2_32.lib advapi32.lib gdi32.lib AR = lib.exe ARFLAGS = $(HB_USER_AFLAGS) diff --git a/harbour/config/win/owatcom.cf b/harbour/config/win/owatcom.cf index 1349c70486..23bcd0c272 100644 --- a/harbour/config/win/owatcom.cf +++ b/harbour/config/win/owatcom.cf @@ -57,7 +57,7 @@ $(foreach lib, $(LINKLIBS), $(link_lib)) $(foreach lib, $(RDDLIBS), $(link_lib)) $(foreach lib, $(GTLIBS), $(link_lib)) echo @%WATCOM%/binnt/wlink.lnk >> __link__.tmp -echo LIB kernel32.lib, user32.lib, wsock32.lib >> __link__.tmp +echo LIB kernel32.lib, user32.lib, ws2_32.lib >> __link__.tmp -$(LD) @__link__.tmp endef diff --git a/harbour/config/win/pocc.cf b/harbour/config/win/pocc.cf index 359d36a26f..a76d0f83fd 100644 --- a/harbour/config/win/pocc.cf +++ b/harbour/config/win/pocc.cf @@ -55,7 +55,7 @@ ifeq ($(findstring rtl,$(LIBS)),rtl) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT)) endif -LDFLAGS = $(LINKPATHS) kernel32.lib user32.lib gdi32.lib wsock32.lib ws2_32.lib advapi32.lib +LDFLAGS = $(LINKPATHS) kernel32.lib user32.lib gdi32.lib ws2_32.lib advapi32.lib LDFLAGS += winspool.lib ole32.lib oleaut32.lib uuid.lib \ comctl32.lib mapi32.lib mpr.lib diff --git a/harbour/config/win/xcc.cf b/harbour/config/win/xcc.cf index f7e5056ba7..5971edbc04 100644 --- a/harbour/config/win/xcc.cf +++ b/harbour/config/win/xcc.cf @@ -53,7 +53,7 @@ ifeq ($(findstring rtl,$(LIBS)),rtl) LINKLIBS += $(foreach gt, $(HB_GT_LIBS), $(gt)$(LIB_EXT)) endif -LDFLAGS = $(LINKPATHS) kernel32.lib user32.lib gdi32.lib wsock32.lib ws2_32.lib advapi32.lib +LDFLAGS = $(LINKPATHS) kernel32.lib user32.lib gdi32.lib ws2_32.lib advapi32.lib LDFLAGS += winspool.lib ole32.lib oleaut32.lib uuid.lib \ comctl32.lib mapi32.lib mpr.lib diff --git a/harbour/contrib/hbodbc/odbc.c b/harbour/contrib/hbodbc/odbc.c index 7f6c9839f8..d9769c07bd 100644 --- a/harbour/contrib/hbodbc/odbc.c +++ b/harbour/contrib/hbodbc/odbc.c @@ -438,7 +438,7 @@ HB_FUNC( SQLERROR ) /* hEnv, hDbc, hStmt, @ cErrorClass, @ nType, @ cErrorMsg */ #endif hb_retni( SQLError( ( HENV ) hb_parptr( 1 ), ( HDBC ) hb_parptr( 2 ), - ( HSTMT ) hb_parnl( 3 ), + ( HSTMT ) hb_parnint( 3 ), buffer, &lError, szErrorMsg, @@ -499,7 +499,7 @@ HB_FUNC( SQLSETCONNECTOPTION ) /* hDbc, nOption, uOption */ #if (ODBCVER >= 0x0300) hb_retni( SQLSetConnectAttr( ( SQLHDBC ) hb_parptr( 1 ), ( SQLINTEGER ) hb_parnl( 2 ), - ISCHAR( 3 ) ? ( SQLPOINTER ) hb_parcx( 3 ) : ( SQLPOINTER ) hb_parnl( 3 ), + ISCHAR( 3 ) ? ( SQLPOINTER ) hb_parcx( 3 ) : ( SQLPOINTER ) hb_parnint( 3 ), ISCHAR( 3 ) ? ( SQLINTEGER ) hb_parclen( 3 ) : ( SQLINTEGER ) SQL_IS_INTEGER ) ); #else hb_retni( SQLSetConnectOption( ( HDBC ) hb_parptr( 1 ), @@ -513,7 +513,7 @@ HB_FUNC( SQLSETSTMTOPTION ) /* hStmt, nOption, uOption ) --> nRetCode */ #if (ODBCVER >= 0x0300) hb_retni( SQLSetStmtAttr( ( SQLHSTMT ) hb_parptr( 1 ), ( SQLINTEGER ) hb_parnl( 2 ), - ISCHAR( 3 ) ? ( SQLPOINTER ) hb_parcx( 3 ) : ( SQLPOINTER ) hb_parnl( 3 ), + ISCHAR( 3 ) ? ( SQLPOINTER ) hb_parcx( 3 ) : ( SQLPOINTER ) hb_parnint( 3 ), ISCHAR( 3 ) ? ( SQLINTEGER ) hb_parclen( 3 ) : ( SQLINTEGER ) SQL_IS_INTEGER ) ); #else hb_retni( SQLSetStmtOption( ( SQLHSTMT ) hb_parptr( 1 ), diff --git a/harbour/source/vm/extrap.c b/harbour/source/vm/extrap.c index 067ce8d2ea..7144cfeb9a 100644 --- a/harbour/source/vm/extrap.c +++ b/harbour/source/vm/extrap.c @@ -105,7 +105,7 @@ LONG WINAPI hb_winExceptionHandler( struct _EXCEPTION_POINTERS * pExceptionInfo errmsg[ 0 ] = '\0'; -#if defined(HB_OS_WIN_64) && defined(_M_X64) +#if defined(HB_OS_WIN_64) && (defined(_M_X64) || defined(__MINGW64__)) { PCONTEXT pCtx = pExceptionInfo->ContextRecord; @@ -121,7 +121,7 @@ LONG WINAPI hb_winExceptionHandler( struct _EXCEPTION_POINTERS * pExceptionInfo " DS:%04X ES:%04X FS:%04X GS:%04X\n" " Flags:%08X\n", ( UINT32 ) pExceptionInfo->ExceptionRecord->ExceptionCode, - pExceptionInfo->ExceptionRecord->ExceptionAddress, + ( HB_PTRDIFF ) pExceptionInfo->ExceptionRecord->ExceptionAddress, pCtx->Rax, pCtx->Rbx, pCtx->Rcx, pCtx->Rdx, pCtx->Rsi, pCtx->Rdi, pCtx->Rbp, pCtx->R8 , pCtx->R9 , pCtx->R10, pCtx->R11, diff --git a/harbour/source/vm/maindllp.c b/harbour/source/vm/maindllp.c index 6ab14c0838..55cf151c05 100644 --- a/harbour/source/vm/maindllp.c +++ b/harbour/source/vm/maindllp.c @@ -64,7 +64,7 @@ #if defined( __BORLANDC__ ) #define HB_DLL_NAME2 "harbour-11-bcc.dll" #define HB_DLL_NAMEMT2 "harbourmt-11-bcc.dll" -#elif defined( _MSC_VER ) && defined( _M_X64 ) +#elif (defined( _MSC_VER ) && defined( _M_X64 )) || defined(__MINGW64__) #define HB_DLL_NAME2 "harbour-11-x64.dll" #define HB_DLL_NAMEMT2 "harbourmt-11-x64.dll" #elif defined( _MSC_VER ) && defined( _M_IA64 ) diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 24975711c3..7835dce364 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -501,7 +501,7 @@ FUNCTION Main( ... ) { {|| FindInPath( "cygstart" ) != NIL }, "cygwin" },; { {|| FindInPath( "xcc" ) != NIL }, "xcc" } } aCOMPSUP := { "mingw", "msvc", "bcc", "owatcom", "icc", "pocc", "xcc", "cygwin",; - "mingw64", msvc64", "msvcia64", "iccia64", "pocc64",; + "mingw64", "msvc64", "msvcia64", "iccia64", "pocc64",; "mingwce", "msvcce", "poccce" } cBin_CompPRG := "harbour.exe" s_aLIBHBGT := { "gtwin", "gtwvt", "gtgui" } @@ -1324,7 +1324,7 @@ FUNCTION Main( ... ) IF t_cCOMP == "mingwce" s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "wininet", "ws2", "commdlg", "commctrl", "uuid", "ole32" } ) ELSE - s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "user32", "winspool", "gdi32", "comctl32", "comdlg32", "ole32", "oleaut32", "uuid", "wsock32", "ws2_32" } ) + s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "user32", "winspool", "gdi32", "comctl32", "comdlg32", "ole32", "oleaut32", "uuid", "ws2_32" } ) ENDIF ENDIF s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; @@ -1471,7 +1471,7 @@ FUNCTION Main( ... ) IF s_lMAP AAdd( s_aOPTL, "OP MAP" ) ENDIF - s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "kernel32", "user32", "wsock32" } ) + s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "kernel32", "user32", "ws2_32" } ) s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; "harbour-" + cDL_Version_Alter ),; "hbmainstd",; @@ -1651,7 +1651,7 @@ FUNCTION Main( ... ) IF s_lSHARED AAdd( s_aOPTL, "/libpath:{DB}" ) ENDIF - s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "user32", "wsock32", "advapi32", "gdi32" } ) + s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "user32", "ws2_32", "advapi32", "gdi32" } ) DO CASE CASE t_cCOMP $ "msvc|icc" s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; @@ -1735,7 +1735,7 @@ FUNCTION Main( ... ) IF s_lDEBUG AAdd( s_aOPTL, "/debug" ) ENDIF - s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "kernel32", "user32", "wsock32", "advapi32", "gdi32" } ) + s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "kernel32", "user32", "ws2_32", "advapi32", "gdi32" } ) s_aLIBSHARED := { iif( s_lMT, "harbourmt-" + cDL_Version_Alter,; "harbour-" + cDL_Version_Alter ),; "hbmainstd",;