2010-07-16 20:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* include/hbsetup.h
  * src/vm/hvm.c
  * contrib/hbmisc/hb_f.c
    ! Added workaround for diab bug. Now build goes fine without HB_LONG_LONG_OFF
      trick.

  * config/vxworks/diab.mk
    + Minor change to sync one C compiler option with VxWorks Workbench
      generated one. (missed from prev commit)
This commit is contained in:
Viktor Szakats
2010-07-16 18:56:07 +00:00
parent e03136aa92
commit 1a3fa64e36
5 changed files with 85 additions and 13 deletions

View File

@@ -16,6 +16,17 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-07-16 20:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbsetup.h
* src/vm/hvm.c
* contrib/hbmisc/hb_f.c
! Added workaround for diab bug. Now build goes fine without HB_LONG_LONG_OFF
trick.
* config/vxworks/diab.mk
+ Minor change to sync one C compiler option with VxWorks Workbench
generated one. (missed from prev commit)
2010-07-16 19:04 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
+ Added Windows and OS/2 specific extra requirements for
@@ -106,7 +117,7 @@
2010-07-16 14:51 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
! Fixed to show error in GTCGI mode instead of going into
an infinite loop.
an infinite loop when launched with interactive options.
2010-07-16 13:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbtest/hbtest.prg

View File

@@ -20,7 +20,7 @@ ifeq ($(HB_CPU),x86)
_DIAB_CPU := X86LH
else
ifeq ($(HB_CPU),arm)
_DIAB_CPU :=
_DIAB_CPU := ARMV7LS
else
ifeq ($(HB_CPU),mips)
_DIAB_CPU :=
@@ -44,9 +44,9 @@ CC := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)
CC_IN := -c
CC_OUT := -o
CFLAGS += -t$(_DIAB_CPU):rtpsim -WDVSB_DIR=$(WIND_BASE)/target/lib
LDFLAGS += -t$(_DIAB_CPU):rtpsim -WDVSB_DIR=$(WIND_BASE)/target/lib
DFLAGS += -t$(_DIAB_CPU):rtpsim -WDVSB_DIR=$(WIND_BASE)/target/lib
CFLAGS += -t$(_DIAB_CPU):rtp -WDVSB_DIR=$(WIND_BASE)/target/lib
LDFLAGS += -t$(_DIAB_CPU):rtp -WDVSB_DIR=$(WIND_BASE)/target/lib
DFLAGS += -t$(_DIAB_CPU):rtp -WDVSB_DIR=$(WIND_BASE)/target/lib
CFLAGS += -I. -I$(HB_INC_COMPILE)
CFLAGS += -I$(WIND_BASE)/target/usr/h

View File

@@ -395,8 +395,15 @@ HB_FUNC( HB_FREADANDSKIP )
offset[area] = offset[area] + x;
recno[area] += 1;
/* See if there's more to read */
if( !isEof[area] )
isEof[area] = (lastbyte[area] <= offset[area] + 1) ;
if( !isEof[area ] )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = (lastbyte[area] <= offset[area] + 1);
isEof[area] = f;
#else
isEof[area] = (lastbyte[area] <= offset[area] + 1);
#endif
}
hb_retclen( b, x - (bHasCRLF ? 2 : 0) );
}

View File

@@ -422,12 +422,6 @@
/* NOTE: Needed to avoid 'implicit bzero() declaration' warnings */
extern void bzero( char * buffer, int nbytes );
#endif
#if defined( __DCC__ )
/* NOTE: Without this, the compiler will crash with this error, even with optimizations disabled: [vszakats]
"../../../hvm.c", line 9827: internal compiler error (etoa:1000): - Failed allocating register pair
please contact support@windriver.com */
#define HB_LONG_LONG_OFF
#endif
/* ***********************************************************************
* Operating system specific definitions

View File

@@ -9771,7 +9771,12 @@ HB_BOOL hb_xvmEqualInt( HB_LONG lValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value == ( HB_MAXINT ) lValue;
pItem->item.asLogical.value = f;
#else
pItem->item.asLogical.value = pItem->item.asLong.value == ( HB_MAXINT ) lValue;
#endif
pItem->type = HB_IT_LOGICAL;
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -9824,7 +9829,12 @@ HB_BOOL hb_xvmEqualIntIs( HB_LONG lValue, HB_BOOL * pfValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value == ( HB_MAXINT ) lValue;
* pfValue = f;
#else
* pfValue = pItem->item.asLong.value == ( HB_MAXINT ) lValue;
#endif
hb_stackDec();
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -9890,7 +9900,12 @@ HB_BOOL hb_xvmNotEqualInt( HB_LONG lValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value != ( HB_MAXINT ) lValue;
pItem->item.asLogical.value = f;
#else
pItem->item.asLogical.value = pItem->item.asLong.value != ( HB_MAXINT ) lValue;
#endif
pItem->type = HB_IT_LOGICAL;
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -9943,7 +9958,12 @@ HB_BOOL hb_xvmNotEqualIntIs( HB_LONG lValue, HB_BOOL * pfValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value != ( HB_MAXINT ) lValue;
* pfValue = f;
#else
* pfValue = pItem->item.asLong.value != ( HB_MAXINT ) lValue;
#endif
hb_stackDec();
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10009,7 +10029,12 @@ HB_BOOL hb_xvmLessThenInt( HB_LONG lValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value < ( HB_MAXINT ) lValue;
pItem->item.asLogical.value = f;
#else
pItem->item.asLogical.value = pItem->item.asLong.value < ( HB_MAXINT ) lValue;
#endif
pItem->type = HB_IT_LOGICAL;
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10057,7 +10082,12 @@ HB_BOOL hb_xvmLessThenIntIs( HB_LONG lValue, HB_BOOL * pfValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value < ( HB_MAXINT ) lValue;
* pfValue = f;
#else
* pfValue = pItem->item.asLong.value < ( HB_MAXINT ) lValue;
#endif
hb_stackDec();
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10118,7 +10148,12 @@ HB_BOOL hb_xvmLessEqualThenInt( HB_LONG lValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value <= ( HB_MAXINT ) lValue;
pItem->item.asLogical.value = f;
#else
pItem->item.asLogical.value = pItem->item.asLong.value <= ( HB_MAXINT ) lValue;
#endif
pItem->type = HB_IT_LOGICAL;
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10166,7 +10201,12 @@ HB_BOOL hb_xvmLessEqualThenIntIs( HB_LONG lValue, HB_BOOL * pfValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value <= ( HB_MAXINT ) lValue;
* pfValue = f;
#else
* pfValue = pItem->item.asLong.value <= ( HB_MAXINT ) lValue;
#endif
hb_stackDec();
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10227,7 +10267,12 @@ HB_BOOL hb_xvmGreaterThenInt( HB_LONG lValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value > ( HB_MAXINT ) lValue;
pItem->item.asLogical.value = f;
#else
pItem->item.asLogical.value = pItem->item.asLong.value > ( HB_MAXINT ) lValue;
#endif
pItem->type = HB_IT_LOGICAL;
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10275,7 +10320,12 @@ HB_BOOL hb_xvmGreaterThenIntIs( HB_LONG lValue, HB_BOOL * pfValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value > ( HB_MAXINT ) lValue;
* pfValue = f;
#else
* pfValue = pItem->item.asLong.value > ( HB_MAXINT ) lValue;
#endif
hb_stackDec();
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10336,7 +10386,12 @@ HB_BOOL hb_xvmGreaterEqualThenInt( HB_LONG lValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value >= ( HB_MAXINT ) lValue;
pItem->item.asLogical.value = f;
#else
pItem->item.asLogical.value = pItem->item.asLong.value >= ( HB_MAXINT ) lValue;
#endif
pItem->type = HB_IT_LOGICAL;
}
else if( HB_IS_DOUBLE( pItem ) )
@@ -10384,7 +10439,12 @@ HB_BOOL hb_xvmGreaterEqualThenIntIs( HB_LONG lValue, HB_BOOL * pfValue )
}
else if( HB_IS_LONG( pItem ) )
{
#if defined( __DCC__ ) /* NOTE: Workaround for vxworks/diab/x86 5.8.0.0 compiler bug. */
HB_BOOL f = pItem->item.asLong.value >= ( HB_MAXINT ) lValue;
* pfValue = f;
#else
* pfValue = pItem->item.asLong.value >= ( HB_MAXINT ) lValue;
#endif
hb_stackDec();
}
else if( HB_IS_DOUBLE( pItem ) )