On Thu, 21 Jan 2010, Alexander S.Kresin wrote: > >add to letodb/source/client/leto1.c just befor last line with > > #endif > >this code: > > #elif defined( HB_DATASEG_STARTUP ) > > #define HB_DATASEG_BODY HB_DATASEG_FUNC( leto1__InitSymbols ) \ > > HB_DATASEG_FUNC( _hb_leto_rdd_init_ ) > > #include "hbiniseg.h" > > > Since what release this became necessary ? I ask this, because I > need to add there ( __HARBOUR__ - 0 ) > some_value to provide > compatibility with old releases.
You do not have to. Above #elif defined( HB_DATASEG_STARTUP ) is enough to check if it's necessary in current versions and does not break older ones. For older Harbour builds you will keep the code covered by #elif defined( HB_MSC_STARTUP ) The final code will look like: #if defined( HB_PRAGMA_STARTUP ) #pragma startup leto1__InitSymbols #pragma startup _hb_leto_rdd_init_ #elif defined( HB_MSC_STARTUP ) // support for old Harbour version #if defined( HB_OS_WIN_64 ) #pragma section( HB_MSC_START_SEGMENT, long, read ) #endif #pragma data_seg( HB_MSC_START_SEGMENT ) static HB_$INITSYM hb_vm_auto_leto1__InitSymbols = leto1__InitSymbols; static HB_$INITSYM hb_vm_auto_leto_rdd_init = _hb_leto_rdd_init_; #pragma data_seg() #elif defined( HB_DATASEG_STARTUP ) #define HB_DATASEG_BODY HB_DATASEG_FUNC( leto1__InitSymbols ) \ HB_DATASEG_FUNC( _hb_leto_rdd_init_ ) #include "hbiniseg.h" #endif > And why I didn't get rddsetdefault error without this fragment of > code ( I tried a short test with Harbour 13587 ( 2010-01-14 18:21 > UTC-0800 Pritpal Bedi (prit...@vouchcac.com)) ) ? Probably you haven't used compiler which needs HB_DATASEG_STARTUP initialization like MSC or OpenWatcom so it was not necessary to register to change registration code. But here I only guess. BTW In Makefile.linux[37] spaces are used instead of <TAB> what breaks GNU make builds. source/common/hbip.c[846] should be: socklen_t sin_size = ( socklen_t ) sizeof( localAddr ); Now now this code is in practice limited to MS-Windows and Linux. I suggest to use Harbour API what should resolve the portability problems. utils/manager/console.prg and utils/manager/manage.prg use: #include "include\rddleto.ch" "\" breaks non MS-Windows builds and not relative path hacked compilation to work only in some strict places. It has to be: #include "rddleto.ch" and any include paths should be set by build scripts using -I parameter. HTH, best regards, Przemek _______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour