2025-12-11 00:15 UTC+0100 Aleksander Czajczynski (hb fki.pl)
* src/vm/macro.c
* workaround MinGW/GCC 15+ excessive diagnostics in hb_macroTextSymbol()
to fix strict mode in CI, manifested with either of those messages:
error: 'memcpy' specified bound 4294967295 exceeds maximum object size
2147483647 [-Werror=stringop-overflow=]
error: 'memcpy' accessing 4294967295 bytes at offsets 4 and 0 overlaps
6442450943 bytes at offset -2147483648 [-Werror=restrict]
* utils/hbmk2/hbmk2.prg
* applied bcc64 fixes from hbmk2.prg posted by Carlos Vargas on
harbour-devel (reformatted):
https://groups.google.com/g/harbour-devel/c/vic0m-VVZ8k
; bcc64 support is not tested and purely based on contributions
This commit is contained in:
@@ -7,6 +7,22 @@
|
||||
Entries may not always be in chronological/commit order.
|
||||
See license at the end of file. */
|
||||
|
||||
2025-12-11 00:15 UTC+0100 Aleksander Czajczynski (hb fki.pl)
|
||||
* src/vm/macro.c
|
||||
* workaround MinGW/GCC 15+ excessive diagnostics in hb_macroTextSymbol()
|
||||
to fix strict mode in CI, manifested with either of those messages:
|
||||
error: 'memcpy' specified bound 4294967295 exceeds maximum object size
|
||||
2147483647 [-Werror=stringop-overflow=]
|
||||
error: 'memcpy' accessing 4294967295 bytes at offsets 4 and 0 overlaps
|
||||
6442450943 bytes at offset -2147483648 [-Werror=restrict]
|
||||
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
* applied bcc64 fixes from hbmk2.prg posted by Carlos Vargas on
|
||||
harbour-devel (reformatted):
|
||||
https://groups.google.com/g/harbour-devel/c/vic0m-VVZ8k
|
||||
|
||||
; bcc64 support is not tested and purely based on contributions
|
||||
|
||||
2025-12-10 22:37 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* README.md
|
||||
* package/harbour.spec
|
||||
|
||||
@@ -745,9 +745,17 @@ char * hb_macroTextSymbol( const char * szString, HB_SIZE nLength, HB_BOOL * pfN
|
||||
{
|
||||
if( szResult == szString )
|
||||
{
|
||||
#if defined( HB_OS_WIN ) && defined( HB_GCC_HAS_DIAG ) && ( HB_GCC_VER >= 1500 )
|
||||
# pragma GCC diagnostic push
|
||||
# pragma GCC diagnostic ignored "-Wstringop-overflow"
|
||||
# pragma GCC diagnostic ignored "-Wrestrict"
|
||||
#endif
|
||||
szResult = ( char * ) memcpy( hb_xgrab( nLength + 1 ),
|
||||
szString, nLength );
|
||||
szResult[ nLength ] = '\0';
|
||||
#if defined( HB_OS_WIN ) && defined( HB_GCC_HAS_DIAG ) && ( HB_GCC_VER >= 1500 )
|
||||
# pragma GCC diagnostic push
|
||||
#endif
|
||||
}
|
||||
szResult[ nLen ] = c - ( 'a' - 'A' );
|
||||
}
|
||||
|
||||
@@ -5181,16 +5181,12 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
cBin_CompC := "bcc32.exe"
|
||||
ENDIF
|
||||
cBin_CompCPP := cBin_CompC
|
||||
cOpt_CompC := "-c -q -CP437"
|
||||
cOpt_CompC := "-c -q" + iif( hbmk[ _HBMK_cCOMP ] == "bcc64", "", " -CP437" )
|
||||
IF hbmk[ _HBMK_lOPTIM ]
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cOpt_CompC += " -d -O2 -OS -Ov -Oc"
|
||||
ELSE
|
||||
cOpt_CompC += " -d -O2 -OS -Ov -Oc -Oi -6"
|
||||
ENDIF
|
||||
cOpt_CompC += " -d -O2" + iif( hbmk[ _HBMK_cCOMP ] == "bcc64", "", " -OS -Ov -Oc -Oi -6" )
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cLibBCC_CRTL := "cw64mt.lib"
|
||||
cLibBCC_CRTL := "cw64mt.a"
|
||||
ELSE
|
||||
cLibBCC_CRTL := "cw32mt.lib"
|
||||
ENDIF
|
||||
@@ -5203,7 +5199,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-tWM" )
|
||||
ELSE
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cLibBCC_CRTL := "cw64.lib"
|
||||
cLibBCC_CRTL := "cw64.a"
|
||||
ELSE
|
||||
cLibBCC_CRTL := "cw32.lib"
|
||||
ENDIF
|
||||
@@ -5211,6 +5207,13 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
ELSE
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-tWM" )
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
SWITCH hbmk[ _HBMK_nWARN ]
|
||||
CASE _WARN_MAX
|
||||
CASE _WARN_YES ; AAdd( hbmk[ _HBMK_aOPTC ], "-w -Q" ) ; EXIT
|
||||
CASE _WARN_NO ; AAdd( hbmk[ _HBMK_aOPTC ], "-w-" ) ; EXIT
|
||||
ENDSWITCH
|
||||
ELSE
|
||||
SWITCH hbmk[ _HBMK_nWARN ]
|
||||
CASE _WARN_MAX ; AAdd( hbmk[ _HBMK_aOPTC ], "-w -Q" ) ; EXIT
|
||||
CASE _WARN_YES ; AAdd( hbmk[ _HBMK_aOPTC ], "-w -Q -w-sig" ) ; EXIT
|
||||
@@ -5218,6 +5221,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
CASE _WARN_LOW ; AAdd( hbmk[ _HBMK_aOPTC ], "-w-sig -w-aus -w-ccc -w-csu -w-ovf -w-par -w-rch -w-spa -w-sus -w-pia" ) ; EXIT
|
||||
CASE _WARN_NO ; AAdd( hbmk[ _HBMK_aOPTC ], "-w-" ) ; EXIT
|
||||
ENDSWITCH
|
||||
ENDIF
|
||||
cOpt_CompC += " {FC} {LC}"
|
||||
cBin_Res := "brcc32.exe"
|
||||
cOpt_Res := "{FR} {IR} -fo{OS}"
|
||||
@@ -5229,15 +5233,16 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
ENDIF
|
||||
cBin_Dyn := cBin_Link
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
cOpt_Link := "-Gn -Tpe -L{DL} {FL} " + iif( hbmk[ _HBMK_lGUI ], "c0w64.obj", "c0x64.obj" ) + " {LO}, {OE}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import64.lib, {IM}, {LS}{SCRIPT}"
|
||||
cOpt_Dyn := "-Gn -Tpd -L{DL} {FD} " + "c0d64.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import64.lib, {IM}, {LS}{SCRIPT}"
|
||||
cOpt_Link := "-Gn -Tpe -L{DL} {FL} " + iif( hbmk[ _HBMK_lGUI ], "c0w64.o", "c0x64.o" ) + " {LO}, {OE}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import64.a, {IM}, {LS}{SCRIPT}"
|
||||
cOpt_Dyn := "-Gn -Tpd -L{DL} {FD} " + "c0d64.o" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import64.a, {IM}, {LS}{SCRIPT}"
|
||||
ELSE
|
||||
cOpt_Link := "-Gn -Tpe -L{DL} {FL} " + iif( hbmk[ _HBMK_lGUI ], "c0w32.obj", "c0x32.obj" ) + " {LO}, {OE}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import32.lib, {IM}, {LS}{SCRIPT}"
|
||||
cOpt_Dyn := "-Gn -Tpd -L{DL} {FD} " + "c0d32.obj" + " {LO}, {OD}, " + iif( hbmk[ _HBMK_lMAP ], "{OM}", "nul" ) + ", {LL} {LB} {LF} " + cLibBCC_CRTL + " import32.lib, {IM}, {LS}{SCRIPT}"
|
||||
ENDIF
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc"
|
||||
/* TODO: Add support for bcc64/mkexp */
|
||||
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_bcc( hbmk, "implib.exe -c {FI} {OL} {ID}", cSourceDLL, cTargetLib, cFlags ) }
|
||||
ELSEIF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_bcc( hbmk, "mkexp.exe {FI} {OL} {ID}", cSourceDLL, cTargetLib, cFlags ) }
|
||||
ENDIF
|
||||
cLibPathPrefix := ""
|
||||
cLibPathSep := ";"
|
||||
@@ -5269,7 +5274,11 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
ENDIF
|
||||
ENDIF
|
||||
IF ! Empty( hbmk[ _HBMK_cWorkDir ] )
|
||||
IF hbmk[ _HBMK_cCOMP ] == "bcc64"
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-output-dir " + FNameEscape( hbmk[ _HBMK_cWorkDir ], hbmk[ _HBMK_nCmd_Esc ], hbmk[ _HBMK_nCmd_FNF ] ) )
|
||||
ELSE
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-n" + FNameEscape( hbmk[ _HBMK_cWorkDir ], hbmk[ _HBMK_nCmd_Esc ], hbmk[ _HBMK_nCmd_FNF ] ) )
|
||||
ENDIF
|
||||
ELSE
|
||||
IF lStopAfterCComp .AND. ! hbmk[ _HBMK_lCreateLib ] .AND. ! hbmk[ _HBMK_lCreateDyn ]
|
||||
IF ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) + Len( hbmk[ _HBMK_aCPP ] ) ) == 1
|
||||
@@ -5415,7 +5424,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
|
||||
SWITCH hbmk[ _HBMK_cCOMP ]
|
||||
CASE "msvc" ; AAdd( hbmk[ _HBMK_aOPTI ], "-machine:x86" ) ; EXIT
|
||||
CASE "msvc64" ; AAdd( hbmk[ _HBMK_aOPTI ], "-machine:x64" ) ; EXIT
|
||||
CASE "msvcarm" ; AAdd( hbmk[ _HBMK_aOPTI ], IIF( hbmk[ _HBMK_cPLAT ] == "wce", "-machine:xarm", "-machine:arm" ) ) ; EXIT
|
||||
CASE "msvcarm" ; AAdd( hbmk[ _HBMK_aOPTI ], iif( hbmk[ _HBMK_cPLAT ] == "wce", "-machine:xarm", "-machine:arm" ) ) ; EXIT
|
||||
CASE "msvcarm64"; AAdd( hbmk[ _HBMK_aOPTI ], "-machine:arm64" ) ; EXIT
|
||||
CASE "msvcia64" ; AAdd( hbmk[ _HBMK_aOPTI ], "-machine:ia64" ) ; EXIT
|
||||
CASE "icc" ; AAdd( hbmk[ _HBMK_aOPTI ], "-machine:x86" ) ; EXIT
|
||||
|
||||
Reference in New Issue
Block a user