diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 489dc5e268..61fed41449 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,11 +16,47 @@ The license applies to all entries newer than 2009-04-28. */ +2010-07-15 19:20 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * include/hbthread.h + ! Hacked around collision between vxWorks headers. + + * ChangeLog + ! Fixed casing of vxWorks. + + * utils/hbmk2/hbmk2.prg + + Added vxworks/gcc libpaths. + ! Fixed vxworks/gcc system lib list. + ! Fixed ar to have postfix. + ; All these are syncs with GNU Make. + + * src/rtl/hbsocket.c + ! Typos in previous vxworks patchs. + + * config/global.mk + ! Fixed forming automatic HB_INSTALL_PREFIX value in *nix cross-build + situations. (it's still wrong as it assumes nix->win cross-builds) + + ; Now vxworks/gcc/x86 build is clean. + There are iTODOs left, and + - this particular class of warnings, which seems + to be a bug down the system header: + hbnetio\netiocli.c:155: warning: missing initializer + hbnetio\netiocli.c:155: warning: (near initialization for 's_netioMtx.mutexAttr.mutexAttrType') + - also this, each time FD_ZERO() and friends are used: + warning: implicit declaration of function 'bzero' + - "argument n of 'x' differ in signedness" and "discards qualifiers from pointer target type" + warnings in hbsocket.c code. + + ; TOFIX: + - Unrecoverable error 9998: Harbour terminal (GT) initialization failure + when running hbtest. + - GPF when running hbmk2 and hbrun. (hbformat, hbi18 startup fine) + 2010-07-15 17:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * external/zlib/zlib.dif * external/jpeg/Makefile + external/jpeg/jpeg.dif - + Added/updated diffs after VxWorks changes. + + Added/updated diffs after vxWorks changes. Patch by Tamas Tevesz. Thanks! 2010-07-15 17:10 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) @@ -65,9 +101,9 @@ + config/vxworks/gcc.mk + config/vxworks/diab.mk + config/vxworks/global.mk - + Started experimental VxWorks port. - ; NOTE: VxWorks port was made possible by Wind River Systems Inc., - who were so kind to mail me a full VxWorks development + + Started experimental vxWorks port. + ; NOTE: vxWorks port was made possible by Wind River Systems Inc., + who were so kind to mail me a full vxWorks development environment, for the purpose of porting Harbour to this platform. Thank you very much guys. @@ -75,14 +111,14 @@ is interested in helping in this project, I can help with real tests, builds and information. BTW, the devenv is Eclipse based plus cmdline, running on Windows (available - for Linux and Solaris, too) and the target VxWorks exes + for Linux and Solaris, too) and the target vxWorks exes run in a virtual environment. ] * config/global.mk - + Added autodetection of VxWorks platform. + + Added autodetection of vxWorks platform. * utils/hbmk2/hbmk2.prg - + Added VxWorks support. It's incomplete yet. + + Added vxWorks support. It's incomplete yet. ! Fixed to quote *nix/gcc compiler family in Windows-host cross-platform situations. diff --git a/harbour/config/global.mk b/harbour/config/global.mk index d4a828e459..398739acdb 100644 --- a/harbour/config/global.mk +++ b/harbour/config/global.mk @@ -1443,7 +1443,7 @@ else HB_INSTALL_PREFIX := /usr/local # Add postfix for cross builds ifneq ($(HB_HOST_PLAT),$(HB_PLATFORM)) - HB_INSTALL_PREFIX += /harbour-$(HB_PLATFORM)-$(HB_COMPILER) + HB_INSTALL_PREFIX := $(HB_INSTALL_PREFIX)/harbour-$(HB_PLATFORM)-$(HB_COMPILER) endif endif endif diff --git a/harbour/include/hbthread.h b/harbour/include/hbthread.h index 60eaef0a37..afbe7c76b1 100644 --- a/harbour/include/hbthread.h +++ b/harbour/include/hbthread.h @@ -65,6 +65,15 @@ defined( HB_OS_SUNOS ) || defined( HB_OS_HPUX ) || \ defined( HB_OS_BSD ) || defined( HB_OS_BEOS ) || \ defined( HB_OS_QNX ) || defined( HB_OS_VXWORKS ) +# if defined( HB_OS_VXWORKS ) + /* Hack to avoid this collision between system headers: [vszakats] + ...\vxworks-6.8\target\usr\h/pthread.h:78, + ...\vxworks-6.8\target\usr\h/unistd.h:439: error: redefinition of typedef 'intptr_t' + ...\vxworks-6.8\target\usr\h/stdint.h:76: error: previous declaration of 'intptr_t' was here */ +# if defined( _INTPTR ) && !defined( _INTPTR_T ) +# define _INTPTR_T +# endif +# endif # include # define HB_PTHREAD_API #elif defined( HB_OS_WIN ) diff --git a/harbour/src/rtl/hbsocket.c b/harbour/src/rtl/hbsocket.c index 197b51c7e4..9e067045d3 100644 --- a/harbour/src/rtl/hbsocket.c +++ b/harbour/src/rtl/hbsocket.c @@ -3011,8 +3011,8 @@ PHB_ITEM hb_socketGetIFaces( int af, HB_BOOL fNoAliases ) * of 'struct ifreq' and SIOCGIF* */ #if defined( SIOCGIFCONF ) && \ - !( defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) && \ - ! defined( HB_OS_VXWORKS ) ) + !( defined( HB_OS_LINUX ) && defined( __WATCOMC__ ) ) && \ + ! defined( HB_OS_VXWORKS ) struct ifconf ifc; struct ifreq * pifr; char * buf, * ptr; diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 20ade9ce3b..bcb866500e 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -2685,11 +2685,14 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) cBin_Lib := "libtool" cOpt_Lib := "-static {FA} -o {OL} {LO}" ELSE - IF hbmk[ _HBMK_cCOMP ] == "icc" + DO CASE + CASE hbmk[ _HBMK_cCOMP ] == "icc" cBin_Lib := "xiar" - ELSE + CASE hbmk[ _HBMK_cPLAT ] == "vxworks" + cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" + hbmk[ _HBMK_cCCPOSTFIX ] + OTHERWISE cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" - ENDIF + ENDCASE IF hbmk[ _HBMK_cPLAT ] $ "hpux|sunos" cOpt_Lib := "{FA} rc {OL} {LO}" ELSE @@ -2740,8 +2743,13 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) AAdd( hbmk[ _HBMK_aOPTC ], "-fno-strict-aliasing" ) AAdd( hbmk[ _HBMK_aOPTC ], "-D_C99" ) AAdd( hbmk[ _HBMK_aOPTC ], "-D_HAS_C9X" ) - AAdd( hbmk[ _HBMK_aINCPATH ], PathSepToSelf( GetEnv( "WIND_USR" ) ) + hb_ps() + "h" ) - AAdd( hbmk[ _HBMK_aINCPATH ], PathSepToSelf( GetEnv( "WIND_USR" ) ) + hb_ps() + "h" + hb_ps() + "wrn" + hb_ps() + "coreip" ) + AAdd( hbmk[ _HBMK_aINCPATH ], PathSepToSelf( GetEnv( "WIND_USR" ) + "/h" ) ) + AAdd( hbmk[ _HBMK_aINCPATH ], PathSepToSelf( GetEnv( "WIND_USR" ) + "/h/wrn/coreip" ) ) + IF hbmk[ _HBMK_lCreateDyn ] + AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToSelf( GetEnv( "WIND_BASE" ) + "/target/lib/usr/lib/simpentium/SIMPENTIUM/common/PIC" ) ) + ELSE + AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToSelf( GetEnv( "WIND_BASE" ) + "/target/lib/usr/lib/simpentium/SIMPENTIUM/common" ) ) + ENDIF ENDIF cOpt_CompC += " {FC}" IF ! Empty( hbmk[ _HBMK_cWorkDir ] ) @@ -2846,7 +2854,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) /* Add system libraries */ IF ! hbmk[ _HBMK_lSHARED ] - IF !( hbmk[ _HBMK_cPLAT ] == "beos" ) + IF !( hbmk[ _HBMK_cPLAT ] $ "beos|vxworks" ) AAdd( l_aLIBSYS, "m" ) IF hbmk[ _HBMK_lMT ] IF !( hbmk[ _HBMK_cPLAT ] == "qnx" )