2010-03-12 11:39 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Readded -pipe option for gcc (except djgpp) and icc/linux family
compilers in a more sophisticated way. Now -pipe option is only
used when hbmk2 controls the output filename, and in such case
the output filename will always be deleted by hbmk2 if the
C compiler returned error. This way -pipe can never leave
faulty or dummy object files on disk, confusing incremental builds
or just leaving trash behind. BTW, it'd be interesting to
know why such seemingly buggy behavior hasn't been fixed in gcc
in the last 6-7 years... (making -pipe option useless for Harbour
build process f.e.)
This commit is contained in:
@@ -17,11 +17,24 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2010-03-12 11:39 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ Readded -pipe option for gcc (except djgpp) and icc/linux family
|
||||
compilers in a more sophisticated way. Now -pipe option is only
|
||||
used when hbmk2 controls the output filename, and in such case
|
||||
the output filename will always be deleted by hbmk2 if the
|
||||
C compiler returned error. This way -pipe can never leave
|
||||
faulty or dummy object files on disk, confusing incremental builds
|
||||
or just leaving trash behind. BTW, it'd be interesting to
|
||||
know why such seemingly buggy behavior hasn't been fixed in gcc
|
||||
in the last 6-7 years... (making -pipe option useless for Harbour
|
||||
build process f.e.)
|
||||
|
||||
2010-03-12 01:03 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
|
||||
* contrib/hbqt/hbqt_hbqplaintextedit.h
|
||||
! Fixed behavior of book-marks. Now color representation
|
||||
on bookmarked lines is persistent and consistent with
|
||||
! Fixed behavior of book-marks. Now color representation
|
||||
on bookmarked lines is persistent and consistent with
|
||||
corresponding buttons in the statusbar.
|
||||
|
||||
2010-03-12 02:10 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
|
||||
@@ -2402,6 +2402,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
cOpt_CompC += " {IC} -o{OO}"
|
||||
ELSE
|
||||
cOpt_CompC += " {IC} -o {OO}"
|
||||
IF hbmk[ _HBMK_cCOMP ] $ "icc|gcc"
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-pipe" )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ELSE
|
||||
cOpt_CompC += " {LC}"
|
||||
@@ -2588,6 +2591,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
cOptIncMask := "-I{DI}"
|
||||
IF ! Empty( cWorkDir )
|
||||
cOpt_CompC += " {IC} -o {OO}"
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-pipe" )
|
||||
ELSE
|
||||
cOpt_CompC += " {LC}"
|
||||
ENDIF
|
||||
@@ -2716,6 +2720,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
|
||||
cOpt_CompC += " {FC}"
|
||||
IF ! Empty( cWorkDir )
|
||||
cOpt_CompC += " {IC} -o {OO}"
|
||||
AAdd( hbmk[ _HBMK_aOPTC ], "-pipe" )
|
||||
ELSE
|
||||
cOpt_CompC += " {LC}"
|
||||
ENDIF
|
||||
@@ -5020,11 +5025,18 @@ STATIC FUNCTION CompileCLoop( hbmk, aTODO, cBin_CompC, cOpt_CompC, cWorkDir, cOb
|
||||
LOCAL cCommand
|
||||
LOCAL tmp, tmp1
|
||||
|
||||
LOCAL lOutputSpecified
|
||||
LOCAL cOutputFile
|
||||
|
||||
FOR EACH tmp IN aTODO
|
||||
|
||||
cCommand := cOpt_CompC
|
||||
|
||||
lOutputSpecified := "{OO}" $ cCommand
|
||||
cOutputFile := FN_DirExtSet( tmp, cWorkDir, cObjExt )
|
||||
|
||||
cCommand := StrTran( cCommand, "{IC}", FN_Escape( tmp, nOpt_Esc ) )
|
||||
cCommand := StrTran( cCommand, "{OO}", FN_Escape( PathSepToTarget( hbmk, FN_DirExtSet( tmp, cWorkDir, cObjExt ) ), nOpt_Esc ) )
|
||||
cCommand := StrTran( cCommand, "{OO}", FN_Escape( PathSepToTarget( hbmk, cOutputFile ), nOpt_Esc ) )
|
||||
|
||||
cCommand := cBin_CompC + " " + AllTrim( cCommand )
|
||||
|
||||
@@ -5048,6 +5060,15 @@ STATIC FUNCTION CompileCLoop( hbmk, aTODO, cBin_CompC, cOpt_CompC, cWorkDir, cOb
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutErr( cCommand + _OUT_EOL )
|
||||
ENDIF
|
||||
/* Delete output file in case of compile error.
|
||||
(only if we know for sure what is the output filename, that is when we
|
||||
speficied it on the command line)
|
||||
This is to protect against compiler bugs (f.e. gcc with -pipe option)
|
||||
when dummy or wrong object file is left on the disk, and misleading
|
||||
next incremental build pass. [vszakats] */
|
||||
IF lOutputSpecified
|
||||
FErase( cOutputFile )
|
||||
ENDIF
|
||||
lResult := .F.
|
||||
EXIT
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user