diff --git a/harbour/ChangeLog b/harbour/ChangeLog index e6a0b9741a..7f3086d363 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,13 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-03-26 00:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/src/vm/hvmall.c + * harbour/include/hbstack.h + * reactivated for tests inline ASM code which can be used to access + HVM stack pointer in MT HVM builds. It can be enabled in 32bit + desktop windows Harbour builds by setting HB_ASM_TLS build time macro. + 2010-03-25 23:19 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) ! bin/postinst.bat Fixed to not make unnecessary hbmk2 calls and warnings for diff --git a/harbour/include/hbstack.h b/harbour/include/hbstack.h index a372958ba3..5852894644 100644 --- a/harbour/include/hbstack.h +++ b/harbour/include/hbstack.h @@ -203,7 +203,11 @@ typedef struct extern HB_TLS_KEY hb_stack_key; # endif # if defined( __BORLANDC__ ) && defined( HB_STACK_PRELOAD ) && \ - !defined( HB_OS_WIN_64 ) && !defined( HB_OS_WIN_CE ) && 0 + !defined( HB_OS_WIN_64 ) && !defined( HB_OS_WIN_CE ) && \ + defined( HB_ASM_TLS ) +# if defined( HB_STACK_LOCAL_MACROS ) + static HB_TLS_KEY hb_stack_key; +# endif static __inline void * hb_stack_ptr_from_tls( void ) { /* mov ecx,hb_stack_key */ @@ -216,8 +220,11 @@ typedef struct return (void*) _EAX; } # define hb_stack_ptr_get() hb_stack_ptr_from_tls() -# elif defined( __MINGW32__ ) && \ - !defined( HB_OS_WIN_64 ) && !defined( HB_OS_WIN_CE ) && 0 +# elif defined( __MINGW32__ ) && defined( HB_ASM_TLS ) && \ + !defined( HB_OS_WIN_64 ) && !defined( HB_OS_WIN_CE ) +# if defined( HB_STACK_LOCAL_MACROS ) + static HB_TLS_KEY hb_stack_key; +# endif static __inline__ __attribute__ ((pure, malloc)) void * hb_stack_ptr_from_tls( void ) { void * p; diff --git a/harbour/src/vm/hvmall.c b/harbour/src/vm/hvmall.c index 16108664aa..2bf8d42146 100644 --- a/harbour/src/vm/hvmall.c +++ b/harbour/src/vm/hvmall.c @@ -92,7 +92,7 @@ # else static HB_TLS_ATTR PHB_STACK hb_stack_ptr = NULL; # endif -# else +# else if !defined( hb_stack_ptr_get ) static HB_TLS_KEY hb_stack_key; # endif # else