2009-08-04 01:25 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* include/hbdefs.h
    ! Further tweaked HB_STRICT_ALIGNMENT detection by using
      HB_CPU_* macros.
      Please review and extend/tweak if needed.

  * include/hbdefs.h
  * include/hbsetup.h
  * include/hbinit.h
  * source/vm/fm.c
  * source/common/hbver.c
  * config/sunos/sunpro.cf
    + Patch for Sun support by Tamas Tevesz.
      - SunPro compiler C++ mode support.
      - HB_STRICT_ALIGNMENT config refinement for Sun platform.
      - SunPro compiler version detection will detect raw version
        number for newer releases.
      - SunPro optimization flag tweaks for C/C++ mode.
        Trying to be Blastwave.org compatible as much as possible.
      - LD_OUT -o option tweak for SunPro.
      ; NOTE: -o option should better be revised for all supported
              [gcc] compilers to have space between it and the
              filename.

  * source/vm/extrap.c
    + Changed to use HB_CPU_* macros instead of using compiler
      specific ones.
This commit is contained in:
Viktor Szakats
2009-08-03 23:27:00 +00:00
parent 2828f74525
commit 499b0f2c33
8 changed files with 51 additions and 11 deletions

View File

@@ -17,6 +17,34 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-08-04 01:25 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbdefs.h
! Further tweaked HB_STRICT_ALIGNMENT detection by using
HB_CPU_* macros.
Please review and extend/tweak if needed.
* include/hbdefs.h
* include/hbsetup.h
* include/hbinit.h
* source/vm/fm.c
* source/common/hbver.c
* config/sunos/sunpro.cf
+ Patch for Sun support by Tamas Tevesz.
- SunPro compiler C++ mode support.
- HB_STRICT_ALIGNMENT config refinement for Sun platform.
- SunPro compiler version detection will detect raw version
number for newer releases.
- SunPro optimization flag tweaks for C/C++ mode.
Trying to be Blastwave.org compatible as much as possible.
- LD_OUT -o option tweak for SunPro.
; NOTE: -o option should better be revised for all supported
[gcc] compilers to have space between it and the
filename.
* source/vm/extrap.c
+ Changed to use HB_CPU_* macros instead of using compiler
specific ones.
2009-08-04 00:33 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
* Minor.

View File

@@ -36,7 +36,12 @@ ifneq ($(HB_BUILD_OPTIM),no)
# conform to the Blastwave build standards, see
# http://wiki.blastwave.org/mediawiki/index.php/Build_Standards
# Try to keep them this way.
CFLAGS += -O -fast -xstrconst -xnolibmopt
CFLAGS += -O -fast
ifneq ($(HB_BUILD_MODE),cpp)
CFLAGS += -xstrconst
endif
CFLAGS += -xnolibmopt
endif
endif
ifeq ($(findstring sparc,$(shell isalist)),sparc)
@@ -50,7 +55,7 @@ CFLAGS += -g
endif
LD = $(HB_CCACHE) $(HB_CMP)
LD_OUT = -o
LD_OUT = -o$(subst x,x, )
# Add all libraries specified in LIBS.
LINKPATHS += -L$(LIB_DIR)

View File

@@ -73,7 +73,7 @@
defined( __MINGW32__ ) || defined( __DMC__ ) || \
( defined( __BORLANDC__ ) && __BORLANDC__ >= 1410 ) || \
( defined( __WATCOMC__ ) && __WATCOMC__ >= 1270 ) || \
( ( defined( __GNUC__ ) || defined( __SUNPRO_C ) ) && \
( ( defined( __GNUC__ ) || defined( __SUNPRO_C ) || defined( __SUNPRO_CC ) ) && \
( defined( _ISOC99_SOURCE ) || \
( defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L ) || \
( defined( __DJGPP__ ) && \
@@ -248,14 +248,14 @@
#if ! defined( HB_DONT_DEFINE_BASIC_TYPES ) && ! defined( _WINNT_H )
#if !defined( LONGLONG )
#if defined( __GNUC__ ) || defined( __SUNPRO_C )
#if defined( __GNUC__ ) || defined( __SUNPRO_C ) || defined( __SUNPRO_CC )
typedef signed long long LONGLONG;
#else
typedef __int64 LONGLONG;
#endif
#endif
#if !defined( ULONGLONG )
#if defined( __GNUC__ ) || defined( __SUNPRO_C )
#if defined( __GNUC__ ) || defined( __SUNPRO_C ) || defined( __SUNPRO_CC )
typedef unsigned long long ULONGLONG;
#else
typedef unsigned __int64 ULONGLONG;
@@ -798,7 +798,12 @@ typedef long hbVMIntMax; /* TOFIX */
* different architectures - SPARC + LINUX, ALPHA + LINUX
*/
#if !defined( HB_STRICT_ALIGNMENT )
# if defined( HB_OS_SUNOS ) || defined( HB_OS_HPUX ) || defined( _M_ARM )
# if defined( HB_CPU_SPARC ) || defined( HB_CPU_SPARC_64 ) || \
defined( HB_CPU_ALPHA ) || \
defined( HB_CPU_PARISC ) || \
defined( HB_CPU_MIPS ) || \
defined( HB_CPU_PPC ) || defined( HB_CPU_PPC_64 ) || \
defined( HB_CPU_ARM )
# define HB_STRICT_ALIGNMENT
# endif
#endif

View File

@@ -112,7 +112,7 @@ extern HB_EXPORT PHB_SYMB hb_vmProcessSymbols( PHB_SYMB pSymbols, USHORT uiSymbo
#define HB_CALL_ON_STARTUP_END( func ) \
}
#elif defined( __GNUC__ ) || defined( __SUNPRO_C )
#elif defined( __GNUC__ ) || defined( __SUNPRO_C ) || defined( __SUNPRO_CC )
#if defined( HB_PRAGMA_STARTUP ) || defined( HB_MSC_STARTUP )
#error Wrong macros set for startup code - clean your make/env settings.

View File

@@ -177,7 +177,7 @@
/* ***********************************************************************
* Operating system specific definitions
*/
#if ( ( defined( __GNUC__ ) || defined( __SUNPRO_C ) ) && \
#if ( ( defined( __GNUC__ ) || defined( __SUNPRO_C ) || defined( __SUNPRO_CC ) ) && \
! ( defined( __DJGPP__ ) || defined( __EMX__ ) || defined( __RSXNT__ ) || \
defined( _Windows ) || defined( _WIN32 ) || defined( _WINCE ) ) ) || \
( defined( __WATCOMC__ ) && defined( __LINUX__ ) )

View File

@@ -629,6 +629,7 @@ char * hb_verCompiler( void )
/* Until someone at Sun somes up with a reliable way of identifying
Sun Studio releases >= about 11. */
iVerMajor = iVerMinor = iVerPatch = 0;
hb_snprintf( szSub, sizeof( szSub ) - 1, "(ident 0x%X)", __SUNPRO_C );
#endif
#elif defined( __SUNPRO_CC )
@@ -643,6 +644,7 @@ char * hb_verCompiler( void )
/* Until someone at Sun somes up with a reliable way of identifying
Sun Studio releases >= about 11. */
iVerMajor = iVerMinor = iVerPatch = 0;
hb_snprintf( szSub, sizeof( szSub ) - 1, "(ident 0x%X)", __SUNPRO_CC );
#endif
#else

View File

@@ -105,7 +105,7 @@ LONG WINAPI hb_winExceptionHandler( struct _EXCEPTION_POINTERS * pExceptionInfo
errmsg[ 0 ] = '\0';
#if defined( HB_OS_WIN_64 ) && ( defined( _M_X64 ) || defined( __MINGW64__ ) )
#if defined( HB_OS_WIN_64 ) && defined( HB_CPU_X86_64 )
{
PCONTEXT pCtx = pExceptionInfo->ContextRecord;
@@ -134,7 +134,7 @@ LONG WINAPI hb_winExceptionHandler( struct _EXCEPTION_POINTERS * pExceptionInfo
See: - StackWalk64()
- http://www.codeproject.com/KB/threads/StackWalker.aspx?fid=202364 */
}
#elif defined( HB_OS_WIN_64 ) && defined( _M_IA64 )
#elif defined( HB_OS_WIN_64 ) && defined( HB_CPU_IA_64 )
{
/* TODO: Itanium
See: winnt.h for PCONTEXT structure. */

View File

@@ -78,7 +78,7 @@
#endif
/* For Sun C, a more generic solution would be nice */
#if defined( __SUNPRO_C )
#if defined( __SUNPRO_C ) || defined( __SUNPRO_CC )
# define __inline __inline__
#endif