[Harbour] sunpro/linux build failure

2010-06-11 Thread Tamas TEVESZ

hi,

przemek, i'm having a build failure with sunpro/linux. i've went quite 
outside my comfort zone by installing centos 5.5 (centos 5 is 
explicitly supported by studio 12u1) i386 (just in case, the no 
surprises fallback). c mode builds but doesn't work (we've been there 
already), but now cpp mode doesn't even build.

! Building Harbour 2.1.0beta1 from source - http://www.harbour-project.org
! MAKE: make 3.81 /bin/sh   
! HB_BUILD_MODE: cpp
! HB_HOST_PLAT: linux (x86)  HB_SHELL: sh
! HB_PLATFORM: linux (x86) (autodetected)
! HB_COMPILER: sunpro (autodetected: /opt/sunstudio12.1/bin/)
! HB_HOST_PKGM: rpm
! Component: 'zlib' found in /usr/include 
! Component: 'pcre' found in /usr/include 
! Component: 'openssl' found in /usr/include 
! Component: 'gpm' found in /usr/include 
! Component: 'slang' found in /usr/include/slang 
! Component: 'curses' found in /usr/include 
! Component: 'x11' found in /usr/include 
! Component: 'wattcp/watt-32' not supported on linux platform
! HB_INSTALL_PREFIX automatically set to: /usr/local
[...]
sunCC   -I. -I../../../../../include -fast -xnolibmopt  -erroff=%none 
  -DHB_LEGACY_TYPES_OFF  -DHB_HAS_PCRE -I/usr/include -DHB_HAS_ZLIB 
  -I/usr/include  -o filebuf.o  -c ../../../filebuf.c
../../../filebuf.c, line 342: Error: Cannot cast from __u_quad_t to unsigned 
long.
../../../filebuf.c, line 386: Error: Cannot cast from __u_quad_t to unsigned 
long.

this is referring to statbuf.st_dev, which indeed is ull, but sunpro 
doesn't override this anywhere, so it's ull with other compilers too, 
where it works fine.

could you take a quick look at it sometime?

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] protect non-standard baudrates in tpathy/tpunix

2010-06-11 Thread Tamas TEVESZ

plus add some, those that are also in src/rtl/hbcom.c

Index: contrib/hbtpathy/tpunix.c
===
--- contrib/hbtpathy/tpunix.c   (revision 14656)
+++ contrib/hbtpathy/tpunix.c   (working copy)
@@ -114,9 +114,27 @@
   case 9600:baud = B9600;break;
   case 19200:   baud = B19200;   break;
   case 38400:   baud = B38400;   break;
+#if defined( B57600 )
   case 57600:   baud = B57600;   break;
+#endif
+#if defined( B115200 )
   case 115200:  baud = B115200;  break;
+#endif
+#if defined( B230400 )
   case 230400:  baud = B230400;  break;
+#endif
+#ifdef B460800
+  case 460800:  baud = B460800;  break;
+#endif
+#ifdef B50
+  case 50:  baud = B50;  break;
+#endif
+#ifdef B576000
+  case 576000:  baud = B576000;  break;
+#endif
+#ifdef B921600
+  case 921600:  baud = B921600;  break;
+#endif
}
 
cfsetispeed( options, baud );

-- 
[-]

mkdir /nonexistentIndex: contrib/hbtpathy/tpunix.c
===
--- contrib/hbtpathy/tpunix.c	(revision 14656)
+++ contrib/hbtpathy/tpunix.c	(working copy)
@@ -114,9 +114,27 @@
   case 9600:baud = B9600;break;
   case 19200:   baud = B19200;   break;
   case 38400:   baud = B38400;   break;
+#if defined( B57600 )
   case 57600:   baud = B57600;   break;
+#endif
+#if defined( B115200 )
   case 115200:  baud = B115200;  break;
+#endif
+#if defined( B230400 )
   case 230400:  baud = B230400;  break;
+#endif
+#ifdef B460800
+  case 460800:  baud = B460800;  break;
+#endif
+#ifdef B50
+  case 50:  baud = B50;  break;
+#endif
+#ifdef B576000
+  case 576000:  baud = B576000;  break;
+#endif
+#ifdef B921600
+  case 921600:  baud = B921600;  break;
+#endif
}
 
cfsetispeed( options, baud );
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] improve clang a bit

2010-05-31 Thread Tamas TEVESZ

  maybe it could be turned around a bit so that all the llvm/clang 
  things are moved out of the gnuc block, but at the same time it fits 
  the way mingw/rsx*/etc are handled now.
  
  i'd say leave it like this, and maybe do some shuffling several clang 
  and/or llvm versions in the future, when things come to light. right 
  now the question basiclaly is: can you get clang without llvm? can 
  you get llvm without clang? i don't really know the answer to these, 
  and that's what's needed to decide whether or not (and how) to move it 
  out into it's own block.

actually, i've been thinking, and, embarrasingly enough, you are right 
again.

the current way is very wrong. when compiled with clang1, 
hb_compiler() will return LLVM/Clang C 4.2.1.

this means that this harbour was compiled with clang version 4.2.1, 
whereas in reality this harbour was compiled with clang version 1.1, 
which has no viable means of telling it's version information, but it 
pretends to be gcc 4.2.1. if and when there will be a clang version 
4.2.1, there will be no way of telling what's going on.

to that end, i propose the following:

- clang can be picked based on the presence of __clang__
- clang v2+ can be picked based on the presence of __clang_major__
- this is  enough to pick out clang v1.x, which is about as precise as 
  we can get identifying clang 1.x (and this is rather enough).
  the c++ fragment here is rather superfluous since there's no c++ in 
  clang1, trim as you see fit)
- with __llvm__ and __GNUC__ we are in llvm-gcc-land (for which we 
  have no support, trim as you see fit)
- you don't get __llvm__ only by itself (it'll have to be accompanied 
  by a frontend)

(and since everything in sunpro is hex, turn the bcd decoder to hex as 
well)

Index: src/common/hbver.c
===
--- src/common/hbver.c  (revision 14644)
+++ src/common/hbver.c  (working copy)
@@ -700,7 +700,7 @@
   iVerPatch = 0;
#endif
 
-#elif defined( __llvm__ )  defined( __clang_major__ )
+#elif defined( __clang__ )  defined( __clang_major__ )
 
pszName = LLVM/Clang C;
 
@@ -712,6 +712,33 @@
   hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
#endif
 
+#elif defined( __clang__ )
+
+   pszName = LLVM/Clang C;
+   iVerMajor = iVerMinor = iVerPatch = 0;
+
+   #if defined( __cplusplus )
+  hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
+   #endif
+
+   hb_strncat( szSub,  1.x, sizeof( szSub ) - 1 );
+
+#elif defined( __llvm__ )  defined( __GNUC__ )
+
+   pszName = LLVM/GNU C
+
+   #if defined( __cplusplus )
+  hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
+   #endif
+
+   iVerMajor = __GNUC__;
+   iVerMinor = __GNUC_MINOR__;
+   #if defined( __GNUC_PATCHLEVEL__ )
+  iVerPatch = __GNUC_PATCHLEVEL__;
+   #else
+  iVerPatch = 0;
+   #endif
+
 #elif defined( __GNUC__ )
 
#if defined( __DJGPP__ )
@@ -726,12 +753,6 @@
   pszName = EMX/RSXNT/Win32 GNU C;
#elif defined( __EMX__ )
   pszName = EMX GNU C;
-   #elif defined( __clang__ )  defined( __llvm__ )
-  pszName = LLVM/Clang C;
-   #elif defined( __clang__ )
-  pszName = Clang/GNU C;
-   #elif defined( __llvm__ )
-  pszName = LLVM/GNU C;
#else
   pszName = GNU C;
#endif
@@ -758,7 +779,7 @@
#else
   iVerMajor = __SUNPRO_C / 0x1000;
   iVerMinor = __SUNPRO_C / 0x10  0xff;
-  iVerMinor = iVerMinor / 16 * 10 + iVerMinor % 16;
+  iVerMinor = iVerMinor / 0x10 * 0xa + iVerMinor % 0x10;
   iVerPatch = __SUNPRO_C  0xf;
#endif
 
@@ -772,7 +793,7 @@
#else
   iVerMajor = __SUNPRO_CC / 0x1000;
   iVerMinor = __SUNPRO_CC / 0x10  0xff;
-  iVerMinor = iVerMinor / 16 * 10 + iVerMinor % 16;
+  iVerMinor = iVerMinor / 0x10 * 0xa + iVerMinor % 0x10;
   iVerPatch = __SUNPRO_CC  0xf;
#endif
 

-- 
[-]

mkdir /nonexistentIndex: src/common/hbver.c
===
--- src/common/hbver.c	(revision 14644)
+++ src/common/hbver.c	(working copy)
@@ -700,7 +700,7 @@
   iVerPatch = 0;
#endif
 
-#elif defined( __llvm__ )  defined( __clang_major__ )
+#elif defined( __clang__ )  defined( __clang_major__ )
 
pszName = LLVM/Clang C;
 
@@ -712,6 +712,33 @@
   hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
#endif
 
+#elif defined( __clang__ )
+
+   pszName = LLVM/Clang C;
+   iVerMajor = iVerMinor = iVerPatch = 0;
+
+   #if defined( __cplusplus )
+  hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
+   #endif
+
+   hb_strncat( szSub,  1.x, sizeof( szSub ) - 1 );
+
+#elif defined( __llvm__ )  defined( __GNUC__ )
+
+   pszName = LLVM/GNU C
+
+   #if defined( __cplusplus )
+  hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
+   #endif
+
+   iVerMajor = __GNUC__;
+   iVerMinor = __GNUC_MINOR__;
+   #if defined( __GNUC_PATCHLEVEL__ )
+  iVerPatch = __GNUC_PATCHLEVEL__;
+   #else
+  iVerPatch = 0;
+   #endif
+
 #elif defined( __GNUC__ )
 
#if defined( __DJGPP__ )
@@ -726,12 

[Harbour] improve clang a bit

2010-05-30 Thread Tamas TEVESZ

- clang 2 does c++ now, so only fall back to c mode if we are running
  clang1
- clang2 has some nice macros for version stuff, use them

tested with both clang2 (bsd) and clang1 (linux), both appear to be 
fine.

thanks to viktor for solving my troubles with the 
$($(shell(($($((subst))$)zoink))$)$))kaboom)$)) madness.

Index: src/common/hbver.c
===
--- src/common/hbver.c  (revision 14637)
+++ src/common/hbver.c  (working copy)
@@ -700,6 +700,18 @@
   iVerPatch = 0;
#endif
 
+#elif defined( __llvm__ )  defined( __clang_major__ )
+
+   pszName = LLVM/Clang C;
+
+   iVerMajor = __clang_major__;
+   iVerMinor = __clang_minor__;
+   iVerPatch = __clang_patchlevel__;
+
+   #if defined( __cplusplus )
+  hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
+   #endif
+
 #elif defined( __GNUC__ )
 
#if defined( __DJGPP__ )
@@ -783,6 +795,15 @@
else
   hb_strncpy( pszCompiler, (unknown), COMPILER_BUF_SIZE - 1 );
 
+#if defined( __clang_version__ )
+   if (strstr( __clang_version__, ())
+  /* 2.0 (trunk 103176) - (trunk 103176) */
+  hb_snprintf( szSub, sizeof( szSub ),  %s, strstr( __clang_version__, 
());
+   else
+  hb_snprintf( szSub, sizeof( szSub ),  (%s), __clang_version__);
+   hb_strncat( pszCompiler, szSub, COMPILER_BUF_SIZE - 1 );
+#endif
+
 #if defined( __DJGPP__ )
hb_snprintf( szSub, sizeof( szSub ),  (DJGPP %i.%02i), ( int ) __DJGPP__, 
( int ) __DJGPP_MINOR__ );
hb_strncat( pszCompiler, szSub, COMPILER_BUF_SIZE - 1 );
Index: config/bsd/clang.mk
===
--- config/bsd/clang.mk (revision 14637)
+++ config/bsd/clang.mk (working copy)
@@ -3,8 +3,11 @@
 #
 
 ifeq ($(HB_BUILD_MODE),cpp)
-   # -ccc-clang-cxx
-   HB_CMP := clang
+   ifneq ($(findstring clang$(subst x, ,x)version$(subst x, ,x)1,$(shell clang 
--version)),)
+  HB_BUILD_MODE := c
+   else
+  HB_CMP := clang++
+   endif
 else
HB_CMP := clang
 endif
Index: config/linux/clang.mk
===
--- config/linux/clang.mk   (revision 14637)
+++ config/linux/clang.mk   (working copy)
@@ -3,8 +3,11 @@
 #
 
 ifeq ($(HB_BUILD_MODE),cpp)
-   # -ccc-clang-cxx
-   HB_CMP := clang
+   ifneq ($(findstring clang$(subst x, ,x)version$(subst x, ,x)1,$(shell clang 
--version)),)
+  HB_BUILD_MODE := c
+   else
+  HB_CMP := clang++
+   endif
 else
HB_CMP := clang
 endif

-- 
[-]

mkdir /nonexistentIndex: src/common/hbver.c
===
--- src/common/hbver.c	(revision 14637)
+++ src/common/hbver.c	(working copy)
@@ -700,6 +700,18 @@
   iVerPatch = 0;
#endif
 
+#elif defined( __llvm__ )  defined( __clang_major__ )
+
+   pszName = LLVM/Clang C;
+
+   iVerMajor = __clang_major__;
+   iVerMinor = __clang_minor__;
+   iVerPatch = __clang_patchlevel__;
+
+   #if defined( __cplusplus )
+  hb_strncpy( szSub, ++, sizeof( szSub ) - 1 );
+   #endif
+
 #elif defined( __GNUC__ )
 
#if defined( __DJGPP__ )
@@ -783,6 +795,15 @@
else
   hb_strncpy( pszCompiler, (unknown), COMPILER_BUF_SIZE - 1 );
 
+#if defined( __clang_version__ )
+   if (strstr( __clang_version__, ())
+  /* 2.0 (trunk 103176) - (trunk 103176) */
+  hb_snprintf( szSub, sizeof( szSub ),  %s, strstr( __clang_version__, ());
+   else
+  hb_snprintf( szSub, sizeof( szSub ),  (%s), __clang_version__);
+   hb_strncat( pszCompiler, szSub, COMPILER_BUF_SIZE - 1 );
+#endif
+
 #if defined( __DJGPP__ )
hb_snprintf( szSub, sizeof( szSub ),  (DJGPP %i.%02i), ( int ) __DJGPP__, ( int ) __DJGPP_MINOR__ );
hb_strncat( pszCompiler, szSub, COMPILER_BUF_SIZE - 1 );
Index: config/bsd/clang.mk
===
--- config/bsd/clang.mk	(revision 14637)
+++ config/bsd/clang.mk	(working copy)
@@ -3,8 +3,11 @@
 #
 
 ifeq ($(HB_BUILD_MODE),cpp)
-   # -ccc-clang-cxx
-   HB_CMP := clang
+   ifneq ($(findstring clang$(subst x, ,x)version$(subst x, ,x)1,$(shell clang --version)),)
+  HB_BUILD_MODE := c
+   else
+  HB_CMP := clang++
+   endif
 else
HB_CMP := clang
 endif
Index: config/linux/clang.mk
===
--- config/linux/clang.mk	(revision 14637)
+++ config/linux/clang.mk	(working copy)
@@ -3,8 +3,11 @@
 #
 
 ifeq ($(HB_BUILD_MODE),cpp)
-   # -ccc-clang-cxx
-   HB_CMP := clang
+   ifneq ($(findstring clang$(subst x, ,x)version$(subst x, ,x)1,$(shell clang --version)),)
+  HB_BUILD_MODE := c
+   else
+  HB_CMP := clang++
+   endif
 else
HB_CMP := clang
 endif
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] improve clang a bit

2010-05-30 Thread Tamas TEVESZ
On Sun, 30 May 2010, Viktor Szakáts wrote:

hi,

  Thanks for the patch. We already had LLVM/Clang C 
  detection inside the __GNUC__ branch, is it still 
  necessary, or can we now safely delete it?

the current one is for clang1 (no clang_major  and friends, but 
defines gnuc and llvm), while the new snippet is for clang2 (which has 
clang_major and friends -- it still defines gnuc and the shebang, but 
i don't think i belongs in that branch.

maybe it could be turned around a bit so that all the llvm/clang 
things are moved out of the gnuc block, but at the same time it fits 
the way mingw/rsx*/etc are handled now.

i'd say leave it like this, and maybe do some shuffling several clang 
and/or llvm versions in the future, when things come to light. right 
now the question basiclaly is: can you get clang without llvm? can 
you get llvm without clang? i don't really know the answer to these, 
and that's what's needed to decide whether or not (and how) to move it 
out into it's own block.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[14641] trunk/harbour

2010-05-30 Thread Tamas TEVESZ
On Sun, 30 May 2010, vszak...@users.sourceforge.net wrote:

  + Clearing forced C++ mode if clang 1.x is detected.
(Patch from Tamas Tevesz. Slight fix added by me to
set HB_CMP when falling back to C mode. I didn't make
tests though.)
  ; NOTE: Probably HB_BUILD_MODE=c should be export-ed
  to avoid double evaluation. Pls test it.

it appears to be working as i think it should.

(just noticed, shouldn't the darwin clang spec updated, too? or will 
this xcode-thing work this out differently?)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] fix sunpro ident

2010-05-28 Thread Tamas TEVESZ

i think this takes care of sunpros =0x5100 (studio 12).

have no earlier ones readily installed, but they should stay ok.

Index: src/common/hbver.c
===
--- src/common/hbver.c  (revision 14628)
+++ src/common/hbver.c  (working copy)
@@ -739,30 +739,29 @@
 #elif defined( __SUNPRO_C )
 
pszName = Sun C;
-   #if __SUNPRO_C  0x600
+   #if __SUNPRO_C  0x1000
   iVerMajor = __SUNPRO_C / 0x100;
   iVerMinor = ( __SUNPRO_C  0xff ) / 0x10;
   iVerPatch = __SUNPRO_C  0xf;
#else
-  /* 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 );
+  iVerMajor = __SUNPRO_C / 0x1000;
+  iVerMinor = __SUNPRO_C / 0x10  0xff;
+  iVerMinor = iVerMinor / 16 * 10 + iVerMinor % 16;
+  iVerPatch = __SUNPRO_C  0xf;
#endif
 
 #elif defined( __SUNPRO_CC )
 
pszName = Sun C++;
-   #if __SUNPRO_CC  0x600
-  pszName = Sun C++;
+   #if __SUNPRO_CC  0x1000
   iVerMajor = __SUNPRO_CC / 0x100;
   iVerMinor = ( __SUNPRO_CC  0xff ) / 0x10;
   iVerPatch = __SUNPRO_CC  0xf;
#else
-  /* 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 );
+  iVerMajor = __SUNPRO_CC / 0x1000;
+  iVerMinor = __SUNPRO_CC / 0x10  0xff;
+  iVerMinor = iVerMinor / 16 * 10 + iVerMinor % 16;
+  iVerPatch = __SUNPRO_CC  0xf;
#endif
 
 #else

-- 
[-]

mkdir /nonexistentIndex: src/common/hbver.c
===
--- src/common/hbver.c	(revision 14628)
+++ src/common/hbver.c	(working copy)
@@ -739,30 +739,29 @@
 #elif defined( __SUNPRO_C )
 
pszName = Sun C;
-   #if __SUNPRO_C  0x600
+   #if __SUNPRO_C  0x1000
   iVerMajor = __SUNPRO_C / 0x100;
   iVerMinor = ( __SUNPRO_C  0xff ) / 0x10;
   iVerPatch = __SUNPRO_C  0xf;
#else
-  /* 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 );
+  iVerMajor = __SUNPRO_C / 0x1000;
+  iVerMinor = __SUNPRO_C / 0x10  0xff;
+  iVerMinor = iVerMinor / 16 * 10 + iVerMinor % 16;
+  iVerPatch = __SUNPRO_C  0xf;
#endif
 
 #elif defined( __SUNPRO_CC )
 
pszName = Sun C++;
-   #if __SUNPRO_CC  0x600
-  pszName = Sun C++;
+   #if __SUNPRO_CC  0x1000
   iVerMajor = __SUNPRO_CC / 0x100;
   iVerMinor = ( __SUNPRO_CC  0xff ) / 0x10;
   iVerPatch = __SUNPRO_CC  0xf;
#else
-  /* 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 );
+  iVerMajor = __SUNPRO_CC / 0x1000;
+  iVerMinor = __SUNPRO_CC / 0x10  0xff;
+  iVerMinor = iVerMinor / 16 * 10 + iVerMinor % 16;
+  iVerPatch = __SUNPRO_CC  0xf;
#endif
 
 #else
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] add dragonfly support

2010-05-25 Thread Tamas TEVESZ

hi,

the following adds dragonfly support to the bsd support chunk.

some notes:

--- config/bsd/libs.mk  (revision 14580)
+++ config/bsd/libs.mk  (working copy)
-  SYSLIBS += slang
+  ifneq ($(wildcard /usr/pkg/lib/libslang2.so),)
+ SYSLIBS += slang2
+  else
+ SYSLIBS += slang
+  endif

this is gross in several ways, but i have no better idea. first 
grossness is that it has /usr/pkg hardcoded (that path can 
theoretically be set to anything else upon installing pkgsrc, though i 
don't know how common it is to change it); second grossness is it 
being called slang2 (apparently, with pkgsrc, slang1 and slang2 can 
coexist).


-_DET_INC_HEAD := /X11/Xlib.h
+_DET_INC_HEAD := /X11/X.h

the reason for this is that (again with pkgsrc) you can apparently get 
in a situation where you have Xlib.h (libx11), but no X.h (xproto). 
without X.h but with Xlib.h, harbour thinks there is x, tries to 
compile support for it, and then hell breaks lose. i've checked (both 
pkgsrc and debian stuff) that xproto depends on libx11, so this seems 
a safe and fair change.

the patch also adds some /usr/pkg locations to det funs (again, 
pkgsrc) - i suspect this will help netbsd too.

hbtest output is below, tested so far as the result is able to compile 
and link small programs, although it needs some manual intervention by 
means of having to specify HB_USER_LDFLAGS=-L/usr/pkg/lib (runtime 
linking is ok). i am not familiar enough with pkgsrc customs to know 
what to do with it, but i have a hunch that this should be left as-is 
for the user to set.


Index: src/common/hbprintf.c
===
--- src/common/hbprintf.c   (revision 14580)
+++ src/common/hbprintf.c   (working copy)
@@ -163,7 +163,7 @@
 # define _x_long_dbl  long double
 # if defined( __WATCOMC__ ) || defined( __MINGW32CE__ ) || defined( 
__CYGWIN__ ) || \
  defined( HB_OS_BEOS ) || defined( HB_OS_IPHONE ) || \
- defined( __OpenBSD__ ) || defined( __NetBSD__ ) || \
+ defined( __OpenBSD__ ) || defined( __NetBSD__ ) || defined( 
__DragonFly__ ) || \
  ( defined( HB_OS_WIN_CE )  defined( __POCC__ ) )
 #define _HB_WRAP_MODFL_
 #define _MODFD( x, p )   _hb_modfl( x, p )
Index: include/hbsetup.h
===
--- include/hbsetup.h   (revision 14580)
+++ include/hbsetup.h   (working copy)
@@ -381,7 +381,7 @@
 
 #ifndef HB_OS_BSD
#if defined( __FreeBSD__ ) || defined( __NetBSD__ ) || defined( __OpenBSD__ 
) || \
-   defined( HB_OS_DARWIN )
+   defined( HB_OS_DARWIN ) || defined( __DragonFly__ )
   #define HB_OS_BSD
#endif
 #endif
Index: config/global.mk
===
--- config/global.mk(revision 14580)
+++ config/global.mk(working copy)
@@ -100,6 +100,8 @@
   HB_HOST_PLAT := bsd
else ifneq ($(findstring bsd,$(1)),)
   HB_HOST_PLAT := bsd
+   else ifneq ($(findstring DragonFly,$(1)),)
+  HB_HOST_PLAT := bsd
else ifneq ($(findstring OS/2,$(1)),)
   HB_HOST_PLAT := os2
else ifneq ($(findstring MS-DOS,$(1)),)
Index: config/bsd/libs.mk
===
--- config/bsd/libs.mk  (revision 14580)
+++ config/bsd/libs.mk  (working copy)
@@ -12,7 +12,11 @@
   SYSLIBS += $(HB_LIBNAME_CURSES)
endif
ifneq ($(HB_HAS_SLANG),)
-  SYSLIBS += slang
+  ifneq ($(wildcard /usr/pkg/lib/libslang2.so),)
+ SYSLIBS += slang2
+  else
+ SYSLIBS += slang
+  endif
   # In BSD, slang still needs curses :(
   ifneq ($(HB_HAS_CURSES),)
  SYSLIBS += $(HB_LIBNAME_CURSES)
@@ -23,7 +27,7 @@
   SYSLIBPATHS += /usr/X11R6/lib
endif
 
-   SYSLIBPATHS += /usr/local/lib
+   SYSLIBPATHS += /usr/local/lib /usr/pkg/lib
 
ifneq ($(HB_HAS_PCRE),)
   ifeq ($(HB_HAS_PCRE_LOCAL),)
Index: config/detect.mk
===
--- config/detect.mk(revision 14580)
+++ config/detect.mk(working copy)
@@ -60,7 +60,7 @@
 _DET_VAR_HAS_ := HB_HAS_PCRE
 _DET_FLT_PLAT :=
 _DET_FLT_COMP :=
-_DET_INC_DEFP := /usr/include /usr/local/include /opt/local/include
+_DET_INC_DEFP := /usr/include /usr/local/include /usr/pkg/include 
/opt/local/include
 _DET_INC_LOCL := $(realpath $(TOP)$(ROOT)external/pcre)
 _DET_INC_HEAD := /pcre.h
 
@@ -104,6 +104,7 @@
 _DET_INC_DEFP += /usr/local/include /usr/local/include/slang
 _DET_INC_DEFP += /sw/include /sw/include/slang
 _DET_INC_DEFP += /opt/local/include /opt/local/include/slang
+_DET_INC_DEFP += /usr/pkg/include/slang2
 
 include $(TOP)$(ROOT)config/detfun.mk
 
@@ -130,8 +131,8 @@
 _DET_VAR_HAS_ := HB_HAS_X11
 _DET_FLT_PLAT :=
 _DET_FLT_COMP :=
-_DET_INC_DEFP := /usr/include /usr/local/include /usr/X11R6/include
-_DET_INC_HEAD := /X11/Xlib.h
+_DET_INC_DEFP := /usr/include /usr/local/include 

Re: [Harbour] add dragonfly support

2010-05-25 Thread Tamas TEVESZ
On Tue, 25 May 2010, Viktor Szakáts wrote:

hi,

  I've committed, along with hbmk2 patch, so in theory 
  the last issue with HB_USER_LDFLAGS should be fixed.
  (since the /pkg dir is already hardcoded when checking 
  for slang2, I think it's just fine to also add it to 
  lib list in hbmk2)

nice, thanks.

let me make a small amendment: 

- reorg includes so that in case only slang1 is installed, it too can 
  be used, and when both slang1 and slang2 are installed, slang2 is 
  favored (in fact, this is a necessity, since the config/bsd/libs.mk  
  snippet as well as your hbmk2 addition will pick libslang2 up if it 
  is present). gtsln will apparently work with both (lightly tested).

again, this should hold true for all pkgsrc platforms (primarily 
netbsd, apart from dfly, in our case).

- it seems i got the x.h/xlib.h thing all mixed up afterall, so revert 
  that.

Index: config/detect.mk
===
--- config/detect.mk(revision 14585)
+++ config/detect.mk(working copy)
@@ -104,7 +104,7 @@
 _DET_INC_DEFP += /usr/local/include /usr/local/include/slang
 _DET_INC_DEFP += /sw/include /sw/include/slang
 _DET_INC_DEFP += /opt/local/include /opt/local/include/slang
-_DET_INC_DEFP += /usr/pkg/include/slang2
+_DET_INC_DEFP += /usr/pkg/include/slang2 /usr/pkg/include
 
 include $(TOP)$(ROOT)config/detfun.mk
 
@@ -132,7 +132,7 @@
 _DET_FLT_PLAT :=
 _DET_FLT_COMP :=
 _DET_INC_DEFP := /usr/include /usr/local/include /usr/X11R6/include 
/usr/pkg/include
-_DET_INC_HEAD := /X11/X.h
+_DET_INC_HEAD := /X11/Xlib.h
 
 include $(TOP)$(ROOT)config/detfun.mk
 

-- 
[-]

mkdir /nonexistentIndex: config/detect.mk
===
--- config/detect.mk	(revision 14585)
+++ config/detect.mk	(working copy)
@@ -104,7 +104,7 @@
 _DET_INC_DEFP += /usr/local/include /usr/local/include/slang
 _DET_INC_DEFP += /sw/include /sw/include/slang
 _DET_INC_DEFP += /opt/local/include /opt/local/include/slang
-_DET_INC_DEFP += /usr/pkg/include/slang2
+_DET_INC_DEFP += /usr/pkg/include/slang2 /usr/pkg/include
 
 include $(TOP)$(ROOT)config/detfun.mk
 
@@ -132,7 +132,7 @@
 _DET_FLT_PLAT :=
 _DET_FLT_COMP :=
 _DET_INC_DEFP := /usr/include /usr/local/include /usr/X11R6/include /usr/pkg/include
-_DET_INC_HEAD := /X11/X.h
+_DET_INC_HEAD := /X11/Xlib.h
 
 include $(TOP)$(ROOT)config/detfun.mk
 
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] add dragonfly support

2010-05-25 Thread Tamas TEVESZ
On Tue, 25 May 2010, Tamas TEVESZ wrote:

hi,

  let me make a small amendment: 

and one more. apparently clang (pkgsrc wip/clang at least) works too. 
config/bsd/clang.mk is a straight copy of config/linux/clang.mk so 
i'll spare inlining it. some hbmk2-voodoo is needed in addition to 
this, of course (will i ever be able to figure that one out).

ideally these should be tested on other bsds, but how about calling it 
work-in-progress and wait for people to give it a try? :


-- 
[-]

mkdir /nonexistentIndex: config/bsd/clang.mk
===
--- config/bsd/clang.mk	(revision 0)
+++ config/bsd/clang.mk	(revision 0)
@@ -0,0 +1,60 @@
+#
+# $Id: clang.mk 14374 2010-04-22 23:53:45Z vszakats $
+#
+
+ifeq ($(HB_BUILD_MODE),cpp)
+   # -ccc-clang-cxx
+   HB_CMP := clang
+else
+   HB_CMP := clang
+endif
+
+OBJ_EXT := .o
+LIB_PREF := lib
+LIB_EXT := .a
+
+HB_DYN_COPT := -DHB_DYNLIB -fpic
+
+CC := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX)
+ifneq ($(filter --analyze, $(HB_USER_CFLAGS)),)
+   CC_IN :=
+else
+   CC_IN := -c
+endif
+CC_OUT := -o
+
+CFLAGS += -I. -I$(HB_INC_COMPILE)
+
+ifneq ($(HB_BUILD_WARN),no)
+   CFLAGS += -W -Wall
+else
+   CFLAGS += -W
+endif
+
+ifneq ($(HB_BUILD_OPTIM),no)
+   CFLAGS += -O3
+endif
+
+ifeq ($(HB_BUILD_DEBUG),yes)
+   CFLAGS += -g
+endif
+
+LD := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX)
+LD_OUT := -o
+
+LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-L$(dir))
+LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib))
+
+LDFLAGS += $(LIBPATHS)
+
+AR := $(HB_CCPREFIX)ar
+AR_RULE = ( $(AR) $(ARFLAGS) $(HB_AFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) $(ARSTRIP) ) || ( $(RM) $(LIB_DIR)/$@  false )
+
+DY := $(CC)
+DFLAGS += -shared $(LIBPATHS)
+DY_OUT := -o$(subst x,x, )
+DLIBS := $(foreach lib,$(HB_USER_LIBS) $(SYSLIBS),-l$(lib))
+
+DY_RULE = $(DY) $(DFLAGS) $(HB_USER_DFLAGS) $(DY_OUT)$(DYN_DIR)/$@ $^ $(DLIBS) $(DYSTRIP)  $(LN) $(@F) $(DYN_FILE2)
+
+include $(TOP)$(ROOT)config/rules.mk
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[14591] trunk/harbour

2010-05-25 Thread Tamas TEVESZ
On Tue, 25 May 2010, vszak...@users.sourceforge.net wrote:

  2010-05-25 23:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
+ config/bsd/clang.mk
  + Base implementation of bsd/clang target.
Based on patch by Tamas Tevesz with modifications:
  - deleted HB_DYN_COPT
  - replaced dynamic lib rules with bsd/gcc.mk.
  (both fully untested)

almost there. it seems that $hb_install_prefix/lib*.so - 
$hb_install_prefix/harbour/ links are not being made, for 
postinst.sh appears to be not doing a thing.

is it possible that in some shape, way or form something along these 
lines is needed?

Index: bin/postinst.sh  
   
=== 
   
--- bin/postinst.sh (revision 14593)
   
+++ bin/postinst.sh (working copy)  
   
@@ -270,7 +270,8 @@ 
   
[ $HB_COMPILER = djgpp ] || \   
   
[ $HB_COMPILER = icc ] || \ 
   
[ $HB_COMPILER = sunpro ] || \  
   
-   [ $HB_COMPILER = open64 ]   
   
+   [ $HB_COMPILER = open64 ] || \  
   
+   [ $HB_COMPILER = clang ]
   
 then   
   
 if [ -n ${HB_TOOLS_PREF} ]; then 
   
 hb_mkdyn=${HB_INST_PKGPREF}${HB_BIN_INSTALL}/${HB_TOOLS_PREF}-mkdyn  
   

this seems to have fixed this remaining issue here, and hbmk2 is quite 
happily churning out clang-compiled binaries.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[14591] trunk/harbour

2010-05-25 Thread Tamas TEVESZ
yOn Wed, 26 May 2010, Tamas TEVESZ wrote:

  this seems to have fixed this remaining issue here, and hbmk2 is quite 
  happily churning out clang-compiled binaries.

yuh, works nicely on freebsd8R-ish with devel/llvm-devel.

netbsd decided to show virtualbox the finger, so that's on the back 
burner for now (but i wouldn't expect any serious problems with it).

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] sunpro-compiled hbrun doesn't work anymore

2010-05-20 Thread Tamas TEVESZ

hi,

as $subject says. i have bisected the problem to have been introduced  
in r12466 (r12465 is fine).

r12466 only says segmentation fault, leaving an empty hb_out.log; 
r14542 is a bit more verbose with:

Application Internal Error - 
/home/ice/w/xhb/hbci/harbour-bisect/harbour/inst/linux/sunpro/c/bin/hbrun
Terminated at: 2010.05.20 22:26:52
Unrecoverable error 6005: Exception SIGSEGV at address 0x1b800ad5268
Called from GET(73)
Called from GETNEW(1978)
Called from __GET(70)
Called from HB_DOTPROMPT(162) in ../../../hbrun.prg
Called from _APPMAIN(124) in ../../../hbrun.prg


(backtraces for both cases are below).

this only happens if hbrun is requested to run interactively (eg. 
using the dot console); if it is to run a program (at least a simple 
one), it's ok. i also have not been able to find anything similar with 
the other compilers i'm testing with.

build environment is ubuntu 10.04/x64 and ubuntu 6.06/i386, with the 
following settings:

unset ${!HB_*}
export HB_BUILD_DEBUG=yes
export HB_COMMERCE=yes
export HB_BUILD_OPTIM=no
export HB_CONTRIBLIBS=no
export HB_WITH_PCRE=yes
export HB_WITH_ZLIB=yes
export HB_PLATFORM=linux
export HB_COMPILER=sunpro
export HB_BUILD_MODE=cpp
export HB_INSTALL_PREFIX=$appdir/inst/$HB_PLATFORM/$HB_COMPILER/$HB_BUILD_MODE

(HB_WITH_PCRE and HB_WITH_ZLIB are not present when building head)

sunpro is cc: Sun C 5.10 Linux_i386 2009/06/03 (CC doesn't work for a 
while, barfing on some system headers).

here's what gdb has to say about this (this particular one being 
ubuntu 10.04/x64; 6.06/i386 is essentially the same, save for the 
addresses):

this is the backtrace for r12466, where the problem originally was 
introduced:

pinky:~/w/xhb/hbci/harbour-bisect/harbour-r12466$ gdb 
./inst/linux/sunpro/c/bin/hbrun
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as x86_64-linux-gnu.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from 
/home/ice/w/xhb/hbci/harbour-bisect/harbour-r12466/inst/linux/sunpro/c/bin/hbrun...done.
(gdb) run
Starting program: 
/home/ice/w/xhb/hbci/harbour-bisect/harbour-r12466/inst/linux/sunpro/c/bin/hbrun
 
[Thread debugging using libthread_db enabled]
Program received signal SIGSEGV, Segmentation fault.
0x00429ae1 in hb_vmPushStatic (uiStatic=1) at ../../../hvm.c:6960
6960   pStatic = ( ( PHB_ITEM ) hb_stackGetStaticsBase() 
)-item.asArray.value-pItems + uiStatic - 1;
(gdb) bt full
#0  0x00429ae1 in hb_vmPushStatic (uiStatic=1) at ../../../hvm.c:6960
pStatic = 0xb6f788
#1  0x004304a2 in hb_xvmPushStatic (uiStatic=1) at ../../../hvm.c:9037
No locals.
#2  0x005cd8fc in HB_FUN_GET () at tget.c:408
fValue = 32767
#3  0x00425c0c in hb_vmProc (uiParams=0) at ../../../hvm.c:5720
sStackState = {lBaseItem = 29, ulPrivateBase = 0, pStatics = 0xb93418, 
uiClass = 0, uiMethod = 0, uiLineNo = 73, 
  fDebugging = 0}
pSym = 0xaf1c60
#4  0x0042fb2d in hb_xvmFunction (uiParams=0) at ../../../hvm.c:8918
No locals.
#5  0x005f538e in HB_FUN_GETNEW () at tget.c:9369
No locals.
#6  0x00425c0c in hb_vmProc (uiParams=5) at ../../../hvm.c:5720
sStackState = {lBaseItem = 21, ulPrivateBase = 0, pStatics = 0xb93418, 
uiClass = 0, uiMethod = 0, uiLineNo = 1975, 
  fDebugging = 0}
pSym = 0xaf3e70
#7  0x0042fb2d in hb_xvmFunction (uiParams=5) at ../../../hvm.c:8918
No locals.
#8  0x005f6690 in HB_FUN___GET () at tgetint.c:124
fValue = 0
#9  0x00425c0c in hb_vmProc (uiParams=5) at ../../../hvm.c:5720
sStackState = {lBaseItem = 6, ulPrivateBase = 0, pStatics = 0xb93418, 
uiClass = 0, uiMethod = 0, uiLineNo = 70, 
  fDebugging = 0}
pSym = 0xad49c8
#10 0x00414fad in hb_vmExecute (pCode=0x80a31e 
\f\005\024\002\060\034, pSymbols=0xad4688) at ../../../hvm.c:1629
bCanRecover = 0
bDynCode = 0
piKeyPolls = 0xb4a880
#11 0x00412ac7 in HB_FUN_HB_DOTPROMPT () at hbrun.c:280
pcode = 
\r\t\001tJ\000$\210\000\260\r\000\024\000\260\016\000yy\024\002$\211\000\260\017\000\\
 

Re: [Harbour] sunpro-compiled hbrun doesn't work anymore

2010-05-20 Thread Tamas TEVESZ
On Thu, 20 May 2010, Przemysław Czerpak wrote:

hi,

  Linux SUNPRO port has very serious bug. It does not correctly generate
  code for all constructors. We are exploiting this problem from time to
  time. It probably depends on total binary size which may interact with
  the contents of some uninitialized memory. I do not know exectly where

thanks for the explanation.

  due to this problem. Now I've tested current builds and it works OK.
  I can executed without any problems hbtest and hbrun. I'm using
  suse1...@x86_64. Anyhow I expect that it can stop to work in any moment
  when some modification change total memory alignment and the problem
  will be exploited again. Looks that in your system is still exploited.

strange. it was working fine with the previous, and maybe the one 
before ubuntus, now it turns out it doesn't work even with a rather 
older one either. this must either be a stupid one in sunpro, or mean 
that linux changes frequently :)

anyway, thanks for explaining this, let's see what oracle does with 
the lot (i'm not holding my breath though).


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] several build failures with r13656

2010-01-20 Thread Tamas TEVESZ

hi,

i am quite hopelessly behind reading the list, but at a quick skim 
these have not surfaced yet.

linux x dos/watcom c
linux x os2/watcom c++
linux x win/mingw c
linux x win/mingw c++
linux x win/watcom c
linux x win/watcom c++

these builds are broken atm.

os2/watcom c++ is:

/usr/bin/harbour ../../../achoice.prg  -i../../../../../include -n1 -q0 -w3 
-es2 -kmo -i- -gc3 
wpp386   -zq -bt=os2 -bm -w3 -3r -i. -i../../../../../include -d2 
  -DHB_TR_LEVEL_DEBUG  -DHB_HAS_PCRE 
-I/home/ice/w/xhb/hbci/harbour-build/external/pcre -DPCRE_STATIC 
  -DHB_HAS_ZLIB -I/home/ice/w/xhb/hbci/harbour-build/external/zlib  
-fo=achoice.obj  achoice.c
achoice.c(132): Error! E473: col(29) function argument(s) do not match those in 
prototype
achoice.c(132): Note! N392: col(29) definition: 'int hb_xvmPopLogical( int * )' 
achoice.c(132): Note! N643: col(29) cannot convert argument 1 defined in: 
achoice.c(132) (col 31)
achoice.c(132): Note! N630: col(29) source conversion type is 'unsigned long *'
achoice.c(132): Note! N631: col(29) target conversion type is 'int *'
[...]

the rest are:

/usr/bin/harbour ../../../checkbox.prg  -i../../../../../include -n1 -q0 -w3 
-es2 -kmo -i- -gc3 
../../../../../include/hbclass.ch(152) Error E0025  Error in #if expression
error

full build logs for all of the above are attached.


-- 
[-]

mkdir /nonexistent

buildfails.tar.bz2
Description: Binary data
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] x86 build on amd64 Linux

2010-01-09 Thread Tamas TEVESZ
On Sat, 9 Jan 2010, Viktor Szakáts wrote:

   HB_USER_CFLAGS=-m32 is a good start (assuming gcc or sunpro), but 
   component autodetection will almost certainly be unusable (it'll pick 
   up stuff for which no 32-bit libs are present).
  
  Now that I'm testing it live, it seems I also need to set:
 HB_USER_LDFLAGS=-m32
 HB_USER_DFLAGS=-m32

strange, i have always been under the impression ld can figure these 
out based on the (input) object format. whatever.

  Plus I need to install '-32bit' postfixed packages additionally.
  OpenSUSE seems to support this scenario well.

  ../../../../../src/vm/obj/linux/gcc/runner_dyn.o 
  ../../../../../src/vm/obj/linux/gcc/vm_dyn.o -lncurses -lslang -lX11 -lz 
  -lrt -ldl -lm -s  ln -sf libharbour-2.0.0.so 
  ../../../../../lib/linux/gcc/libharbour.so
  /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld: 
  skipping incompatible 
  /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../libX11.so when searching for 
  -lX11
  /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld: 
  skipping incompatible /usr/lib64/libX11.so when searching for -lX11
  /usr/lib64/gcc/x86_64-suse-linux/4.4/../../../../x86_64-suse-linux/bin/ld: 
  cannot find -lX11

this is because it doesn't find 32bit x11 libs. looking at a 11.2 x64 
media, i see no -32bit devel packages for xlibs.

  So to reiterate, what is the 'official' way to build an 32-bit 
  .rpm on a 64-bit host?

that i have never known in the first place ;


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] openSUSE 32-bit build on 64-bit [update#1]

2010-01-09 Thread Tamas TEVESZ
On Sat, 9 Jan 2010, Viktor Szakáts wrote:

I'm not sure if it's missing package or something missing from our .mk 
  files. [TOFIX?]
As far as I can tell, a libX11.so lib _was_ installed in 32-bit lib dir.
This can be solved using this ugly hack: [update#1]
   $ cd /usr/lib
   $ sudo ln -s libX11.so.6 libX11.so

i personally have feelings against this, but it seems to be in line 
with the how to compile wine64 on suse document at 
http://wiki.winehq.org/WineOn64bit, which in it's own right might be 
useful, given the sort-of similarity of the situation.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] x86 build on amd64 Linux

2010-01-08 Thread Tamas TEVESZ
On Fri, 8 Jan 2010, Viktor Szakáts wrote:

hi,

  What build settings are needed to build an x86 (i?86) 
  Harbour build on an amd64 host?

HB_USER_CFLAGS=-m32 is a good start (assuming gcc or sunpro), but 
component autodetection will almost certainly be unusable (it'll pick 
up stuff for which no 32-bit libs are present).

you'd best do this on centos (fedora too, perhaps -- they ship 32bit 
versions of most every lib); not a chance it'll (easily) work on 
debian-ish stuff.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] x86 build on amd64 Linux

2010-01-08 Thread Tamas TEVESZ
On Fri, 8 Jan 2010, Viktor Szakáts wrote:

hi,

   What build settings are needed to build an x86 (i?86) 
   Harbour build on an amd64 host?
   
   HB_USER_CFLAGS=-m32 is a good start (assuming gcc or sunpro), but 
   component autodetection will almost certainly be unusable (it'll pick 
   up stuff for which no 32-bit libs are present).
   
   you'd best do this on centos (fedora too, perhaps -- they ship 32bit 
   versions of most every lib); not a chance it'll (easily) work on 
   debian-ish stuff.
  
  Thanks, I'll have a start with -m32.
  
  How is it possible to install 32-bit libs on an 64-bit system?

short if compiling by hand... i know of no such way. debian and ubuntu 
only ships a quite small set of 32-bit libs just enough to run some 
32-bit only stuff (adobe reader and the likes). hand-installing so 
that it is in sync with the system libs (so that you only need one set 
of headers, thus autodetect won't get fooled)... laborous.

  Maybe it's also possible to add support for this case in 
  autodetection, but I'm in the dark ATM.

with red hat, it's quite simple, as apart from -m32, you don't really 
need anything else, i think (well, obviously, you need to install both 
the 32 and 64 bit versions of any given library, but these come with 
the distro).

  Switching to 64-bit Ubuntu (the distro I use) is also on the 
  table, but until I'm not sure about these issues, I don't 
  feel comfortable to make it.

ubuntu is linux for the masses. the masses don't need anything more 
complicated than a wooden cube (and even that might be too confusing). 
if you need anything more complicated than a wooden cube.. go figure 
;)

if i wanted to do this, i'd first consider something redhat (can't 
speak for suse at all, though).

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: To Viktor about openSuse rpm

2010-01-03 Thread Tamas TEVESZ
On Sun, 3 Jan 2010, francesco perillo wrote:

  harbour-static contains the .a libraries

doesn't suse name these kinds of packages -devel, like any 
rpm system with good manners does?

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: To Viktor about openSuse rpm

2010-01-03 Thread Tamas TEVESZ
On Sun, 3 Jan 2010, francesco perillo wrote:

  On Sun, Jan 3, 2010 at 11:20 AM, Tamas TEVESZ i...@extreme.hu wrote:
   On Sun, 3 Jan 2010, francesco perillo wrote:
  
     harbour-static contains the .a libraries
  
   doesn't suse name these kinds of packages -devel, like any
   rpm system with good manners does?
  
  Well, I will check with other compiler packages

you should be checking the library packages instead.

-static means a completely different thing.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: To Viktor about openSuse rpm

2010-01-03 Thread Tamas TEVESZ
On Sun, 3 Jan 2010, francesco perillo wrote:

francesco,

honestly this is not intended as an offence, far be from it, but there 
are established standards and policies for packaging, which you are 
not to reinvent, override or outsmart, but to follow.

opensuse has some nice documentation on packaging at 
http://en.opensuse.org/Packaging, especially for the currently 
relevant topic of libraries at 
http://en.opensuse.org/Packaging/Shared_Library_Packaging_Policy

note it says packaging policy, not packaging suggestions.

proper packaging is much more complicated and tricky business than 
most of you can even begin to imagine, and it most certainly isn't 
just lets shovel a metric shitload of files into an rpm (or deb, or 
anything else, for that matter) container and call it a day.

as things stand now, as far as i can tell (this is a long shot, and a 
premature statement from my side, but hey) the upstream build system 
and upstream procedures aren't even able to support proper packaging.

again, do not take this the wrong way, but it really is a much more 
complicated matter than most of you seem to think.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: To Viktor about openSuse rpm

2010-01-03 Thread Tamas TEVESZ
On Sun, 3 Jan 2010, Viktor Szakáts wrote:

most things below are just scratching the problem-surface, and 
definitely need more eyes.

  I have a pending commit, which merges core + lib + static 
  rpms into one. Is this okay?

definitely not.

i think that the proper splitting is something very close to this (as 
i'm primarily familiar with deb, that's what i base the following 
upon, but the general principle applies with most every distro, and to 
some extent ports, pkgsrc, and whatever other packaging method there 
is):

harbour-utils - hbrun, maybe hbtest
libharbour$shlib_version - libharbour{mt,}.so.x.y.z
libharbour-dev - *.h, *.api, libharbour{mt,}.so (symlink to .x.y.z)
harbour - harbour, hbmk2, *.ch, other stuff that are directly used 
  when compiling prg to native code
harbour-doc - stuff in doc/
libharbour-foo - a foo component with the foo.so.x.y.z
libharbour-foo-dev - headers for this foo.so.x.y.z, and foo.so (link 
  to foo.so.x.y.z)

of course with carefully crafted dependencies between these, where 
internal dependencies between tools and stuff may further change the 
scene.

as you can see, there is a lot of the above that is not there in the 
build system.

the first problem is a consistent shared library versioning policy. 
currently the so version is stuck to the harbour version number, which 
is suboptimal. it has had the same version number for quite some time, 
with api and maybe abi changes too, this is bad karma. there needs to 
be a procedure stating if you change abi in an incompatible way, bump 
major; if you change abi in a compatible way, bump minor; if unsure, 
bump, or something along these lines.

this is a strict prerequisite for any libharbour package, which in 
turn is a strict prerequisite for (other, 3rd party) stuff written in 
harbour entering any distro (which i suppose is an implicit goal, 
otherwise there's no point in harbour itself entering any distro).

this only covers libharbour, and does not even begin to scratch the 
stuff that is currently only shipped in static archives. it seems to 
be customary not to make shared versions of these; i haven't yet 
figured out whether this is good or bad (i can reason either case, 
though :).

yes, this detaches libharbour version from the actual harbour version, 
but it also makes it possible (with some extra tweaks i s'pose) to 
have several libharbour versions installed, which is good for example 
if there is a harbour-2.0 package with the release version, and a 
harbour-be (for bleeding edge) version updated regularly, thus 
making it possible for a developer (harbour user, who develops in 
harbour, but who does not develop harbour) to have a stable 
development environment as well as be able to test new features, 
follow new features (maybe in a separate branch in her application), 
and also report bugs with the development version of harbour.

libharbour also needs some baseline functionality. what this means is 
that no matter where, on what system, in what environment, etc etc, is 
a libharbour.so.x.y.z is generated, any other libharbour.so with the 
same x.y.z version generated on any other system in any other 
environment need to have at least a well-defined common ground (call 
it core functionality), ideally be the same. what this actually 
means is up for definition (eg. what rdds, what gts, etc etc).

optional (everything the above does not cover) is to be supplied in 
separate {libraries, archives, ...} maybe by libharbour dlopening them 
on demand, or whatever.

consider this: i have application `foobar', it uses 
libharbour-4.3.11, and it crashes when i look to the left. the 
backtrace says `system has been recalled'. currently basically 
there's no way to tell what actually *is* in libharbour-4.3.11, making 
debugging in email (which *will* happen, when we're there) nigh 
impossible. mix and match this with the currently non-existing 
consistent shlib versions, and it quickly translates to hm, 
libharbour-4.3.11. we have absolutely no idea what it might be.

then there's the question of packaging the contrib stuff, possibly 
creating packages that support cross-compiling (the picture starts to 
get blurry now -- see, you don't, for example, package gtwvw for a 
native package, but you do for a cross-compile environment).

then there's the question of (again) packaging the contrib stuff - do 
we want a separate package for each (i can reason pro and con against 
either), or do we want to group them by some attributes (i can reason 
pro and con against either) (though my preference is this latter), ...

at this point i literally got tired of citing the issues, as in i 
really need a coffee, but i'm pretty much certain that by now everyone 
sees that it is _rather a complicated issue_.

  We can rename it to anything, although I have to wonder about 
  these policies... This policy is OpenSUSE specific. Now if each 
  distro has its own policy (and why not, I bet they have), we 
  will have some fun waste 

Re: [Harbour] SF.net SVN: harbour-project:[13457] trunk/harbour

2010-01-03 Thread Tamas TEVESZ
On Sun, 3 Jan 2010, vszak...@users.sourceforge.net wrote:

* harbour.spec
  + Merged lib and static subpackages into main one.

oh, i see you did that while i was away typing.

anyway, there's no point in reverting that; currently (by virtue of 
rpm/deb being used as a convenience container only), as long as the 
result installs, it completely doesn't matter.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: To Viktor about openSuse rpm

2010-01-03 Thread Tamas TEVESZ
On Sun, 3 Jan 2010, Viktor Szakáts wrote:

   harbour-utils - hbrun, maybe hbtest
   libharbour$shlib_version - libharbour{mt,}.so.x.y.z
   libharbour-dev - *.h, *.api, libharbour{mt,}.so (symlink to .x.y.z)
   harbour - harbour, hbmk2, *.ch, other stuff that are directly used 
when compiling prg to native code
   harbour-doc - stuff in doc/
   libharbour-foo - a foo component with the foo.so.x.y.z
   libharbour-foo-dev - headers for this foo.so.x.y.z, and foo.so (link 
to foo.so.x.y.z)
  
  What is the point of having 'harbour' package, when 
  nothing useful can be done with it? In any case, hbmk2 
  needs to be moved to utils since it requires libs to 
  work.

naturally there are dependencies between them, also external deps as 
needed.

  Then what is the point of having hbrun without dynamic 
  libs, when hbrun is built as shared binary in certain 
  situations, so it cannot work without Harbour dynamic 
  lib also.

i might be misunderstanding something, but this seems to be untrue. i 
have a hbrun binary that (to a certain extent) chugs along nicely, 
without any trace of a dynamic libharbour (or anything else harbour) 
being around anywhere.

  I think the ultimate difference between Harbour and 
  regular 'lib' packages, is that in Harbour there is 
  not much point in having a dev packages, as development 
  consists of building final apps in 99.99% of cases, 
  and not building something else with the help of Harbour 
  headers.

hbrun's script interpreter mode is the prime example of the contrary. 
also imagine przemek coming up with (arbitrary example) an ads-like 
dbf server, which relies on and only relies on libhb (file 
management, network management, dbf drivers, full stop). should the 
compiler and headers, and contrib/rddads be installed in this case? 
hardly.

  harbour compiler executable can do very little thing 
  by itself, as far as real-life usage goes.
  
  Here comes to mind, that maybe we should also list 
  C compiler tools as dependency, because without C 
  compiler, Harbour is again unusable.

yes, of course. i deliberately didn't go into such details for fear of 
being lost in them.

   the first problem is a consistent shared library versioning policy. 
   currently the so version is stuck to the harbour version number, which 
   is suboptimal. it has had the same version number for quite some time, 
   with api and maybe abi changes too, this is bad karma. there needs to 
  
  We've been in development stage. Version in increased 
  by each major release, and we promise to keep compatibility 
  between minor releases only. Emphasis on _release_. Current 
  SVN, beta, or rc isn't a release.

ok, i accept that. i still think that bumping as changes go would be 
better, but i accept that.

   this only covers libharbour, and does not even begin to scratch the 
   stuff that is currently only shipped in static archives. it seems to 
   be customary not to make shared versions of these; i haven't yet 
   figured out whether this is good or bad (i can reason either case, 
   though :).
  
  Yes, shared lib creation for contribs is not implemented 
  (yet?).

i feel they also should be, but this also raises libver questions. do 
they live a separate life, or do we go with one and only one version 
for the whole shebang?

   have several libharbour versions installed, which is good for example 
   if there is a harbour-2.0 package with the release version, and a 
   harbour-be (for bleeding edge) version updated regularly, thus 
   making it possible for a developer (harbour user, who develops in 
   harbour, but who does not develop harbour) to have a stable 
   development environment as well as be able to test new features, 
   follow new features (maybe in a separate branch in her application), 
   and also report bugs with the development version of harbour.
  
  This is only possible in pure dynamic world I guess.

certainly. in a static world, none of this thread applies at all. in 
that case, any harbour package is only used by a developer 
(application developer writing prg code, producing executables that 
only (dyn)link against stuff outside harbour), thus making the whole 
proper package idea moot at best, as any package becomes just a 
convenience container, for which the current setup is ok. won't ever 
enter any distro, but if no end-user is ever to use it, then it 
doesn't matter either.

   libharbour also needs some baseline functionality. what this means is 
   that no matter where, on what system, in what environment, etc etc, is 
   a libharbour.so.x.y.z is generated, any other libharbour.so with the 
   same x.y.z version generated on any other system in any other 
   environment need to have at least a well-defined common ground (call 
   it core functionality), ideally be the same. what this actually 
   means is up for definition (eg. what rdds, what gts, etc etc).
  
  I'd personally define get Harbour lib version as the only 
  core 

Re: [Harbour] Re: To Viktor about openSuse rpm

2010-01-03 Thread Tamas TEVESZ
On Sun, 3 Jan 2010, Viktor Szakáts wrote:

   Then what is the point of having hbrun without dynamic 
   libs, when hbrun is built as shared binary in certain 
   situations, so it cannot work without Harbour dynamic 
   lib also.
   
   i might be misunderstanding something, but this seems to be untrue. i 
   have a hbrun binary that (to a certain extent) chugs along nicely, 
   without any trace of a dynamic libharbour (or anything else harbour) 
   being around anywhere.
  
  It depends on the setup. For cases where Harbour 
  is built to be installed in system locations, 
  the binaries are built against the shared lib.

so it is controlled by some heuristics mechanism, i couldn't quickly 
find where this is. i suppose it has to do with known sysloc paths. 
building the deb n stuff it looks like:

! HB_BIN_INSTALL: /usr/bin
! HB_LIB_INSTALL: /usr/lib/harbour
! HB_INC_INSTALL: /usr/include/harbour
! HB_DOC_INSTALL: /usr/share/doc/harbour
! HB_INSTALL_PREFIX automatically set to: /usr/local

this might be it. install locations are explicitly set, but setting 
install_prefix doesn't take these into account, and is also set to a 
non-system loc, which in turn somehow controls dyn builds.

it is generally not acceptable to ship packages like this. especially 
if there is a shared lib, then it shall be used by applications.

   I think the ultimate difference between Harbour and 
   regular 'lib' packages, is that in Harbour there is 
   not much point in having a dev packages, as development 
   consists of building final apps in 99.99% of cases, 
   and not building something else with the help of Harbour 
   headers.
   
   hbrun's script interpreter mode is the prime example of the contrary. 
   also imagine przemek coming up with (arbitrary example) an ads-like 
   dbf server, which relies on and only relies on libhb (file 
  
  That's true, although hbrun is _not_ part of the 
  default core package we're talking about. hbrun 
  however, requires shared lib.
  
   management, network management, dbf drivers, full stop). should the 
   compiler and headers, and contrib/rddads be installed in this case? 
   hardly.
  
  Well, standalone apps built using Harbour and part 
  of Harbour package can be like that (like hbrun), 
  but I think this projects primary goal is to build 
  a compiler, and even hbrun may need .ch header and 
  even such dbf server is most likely to have a client 
  side, which will in turn need the compiler.
  
  What you describe fits the 'harbour-tool' category, 
  which is fine.
  
  So to reiterate, maybe a harbour-dynlibs package, 
  and a harbour-staticlibs package are justified, but 

this to me feels like breaking the principle of least surprise. what 
is in harbour-dynlibs would be called libharbour-dev by convention 
(watch me cheat, it would be called harbour-devel in rpm-land :), but 
the principle of separation still is the same); similarly, 
harbour-statislibs would be harbour-dev; although i agree that the 
fact that there is a runtime and also a compiler is provided by hb 
makes this a little special.

maybe so that libharbour has the shared objects, libharbour-dev has 
the static archives and the headers. are ch needed when only using an 
app linked against libharbour? if yes, and for example hbrun needs 
that, tools can be made to depend on -dev.

harbour would then have the compiler, pp and the rest of the gang.

libhb is the base of all stuff. hbrun pulls libhb-dev, harbour pulls 
in hbrun (and lets hbrun implicitly pull libhb-dev).

what existing package might be similar to this that could be studied 
for some inspiration? i can't really think of any now.

  only as long as these are always pulled by harbour-core 
  package. harbour-tools package would only pull 
  harbour-dynlibs.

   i feel they also should be, but this also raises libver questions. do 
   they live a separate life, or do we go with one and only one version 
   for the whole shebang?
  
  Since they are meant as separate entities, we 
  should have the option to untie they versioning 
  from core anytime. Until they live inside the 
  same repository, we should sync their version to 
  core.

it just dawned on me that there also is hbide, which for the moment 
lives in contrib yes, but is shortly (for an arbitrary definition of 
short) is expected to enter core, so i think we also should take a 
harbour-ide package into consideration right at the beginning.

i'd rather prefer it not be made part of dev.

   As for the expected _set of content_, I agree we should have 
   a standard defined, and it's defined well already.
   It's roughly everything inside /src except compiler. We call 
   
   this flat out can not be true ;)
   
   if you have slang-dev installed and i don't, you get a libharbour with 
   gtslang, i get one without. same sources, system-dependent result.
  
  I you ask me, I wanted to pull out gtcrs and gtsln from 
  inside the core for somewhat similar reasons, but it got 
  

Re: [Harbour] SF.net SVN: harbour-project:[13436] trunk/harbour

2010-01-02 Thread Tamas TEVESZ
On Sat, 2 Jan 2010, vszak...@users.sourceforge.net wrote:

hi,

* config/global.mk
  + Added rudamentary package manager detection (so far for
darwin and linux). Please extend. This will allow to make 
proper dependency checking in detect.mk.

the deb heuristics are quite wrong (works on latest ubuntu, but 
that's about it. maybe one version back as well.). you should rather 
check for the existence of /etc/debian_version, that's a much better 
sign of dpkg being the native package manager.


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13437] trunk/harbour

2010-01-02 Thread Tamas TEVESZ
On Sat, 2 Jan 2010, vszak...@users.sourceforge.net wrote:

* config/global.mk
  ! Fixed debian package manager detection, as suggest by 
Tamas Tevesz.

you nicely beat me to it while i was preoccupied ;)

the floowing (also attached) could also be applied for uniformity.

Index: config/global.mk
===
--- config/global.mk(revision 13437)
+++ config/global.mk(working copy)
@@ -507,10 +507,10 @@
 
 # try to detect MinGW cross-compiler location using some default 
platform settings
 ifeq ($(HB_CCPATH)$(HB_CCPREFIX),)
-   ifneq ($(call find_in_path_raw,debian_version,/etc),)
+   ifneq ($(wildcard /etc/debian_version),)
   HB_CCPREFIX := i586-mingw32msvc-
else
-  ifneq ($(call find_in_path_raw,gentoo-release,/etc),)
+  ifneq ($(wildcard /etc/gentoo-release),)
  ifneq ($(call 
find_in_path_par,i386-mingw32msvc-gcc,/opt/xmingw/bin),)
 HB_CCPATH := /opt/xmingw/
 HB_CCPREFIX := i386-mingw32msvc-

-- 
[-]

mkdir /nonexistentIndex: config/global.mk
===
--- config/global.mk	(revision 13437)
+++ config/global.mk	(working copy)
@@ -507,10 +507,10 @@
 
 # try to detect MinGW cross-compiler location using some default platform settings
 ifeq ($(HB_CCPATH)$(HB_CCPREFIX),)
-   ifneq ($(call find_in_path_raw,debian_version,/etc),)
+   ifneq ($(wildcard /etc/debian_version),)
   HB_CCPREFIX := i586-mingw32msvc-
else
-  ifneq ($(call find_in_path_raw,gentoo-release,/etc),)
+  ifneq ($(wildcard /etc/gentoo-release),)
  ifneq ($(call find_in_path_par,i386-mingw32msvc-gcc,/opt/xmingw/bin),)
 HB_CCPATH := /opt/xmingw/
 HB_CCPREFIX := i386-mingw32msvc-
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] simplifying global.mk

2010-01-02 Thread Tamas TEVESZ
On Sat, 2 Jan 2010, Viktor Szakáts wrote:

hi,

  No, it looks fine. It can even be a little bit further optimized, 
  I'll commit it ASAP, pls test it.

works nicely.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] simplifying global.mk

2010-01-02 Thread Tamas TEVESZ

one more related cleanup piece

Index: config/dir.mk
===
--- config/dir.mk   (revision 13444)
+++ config/dir.mk   (working copy)
@@ -10,11 +10,6 @@
 ifeq ($(HB_HOST_PLAT),dos)
# do not use rules for parallel processing in DOS
JOB_SRV := NO
-else
-   # these make versions does not work correctly with
-   # parallel execution rules below
-   JOB_SRV := $(MAKE_VERSION:3.7%=NO)
-   JOB_SRV := $(JOB_SRV:3.80%=NO)
 endif
 
 ifeq ($(JOB_SRV),NO)

-- 
[-]

mkdir /nonexistentIndex: config/dir.mk
===
--- config/dir.mk	(revision 13444)
+++ config/dir.mk	(working copy)
@@ -10,11 +10,6 @@
 ifeq ($(HB_HOST_PLAT),dos)
# do not use rules for parallel processing in DOS
JOB_SRV := NO
-else
-   # these make versions does not work correctly with
-   # parallel execution rules below
-   JOB_SRV := $(MAKE_VERSION:3.7%=NO)
-   JOB_SRV := $(JOB_SRV:3.80%=NO)
 endif
 
 ifeq ($(JOB_SRV),NO)
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Harbour 2.0 linux release search a releaser

2010-01-01 Thread Tamas TEVESZ
On Sat, 2 Jan 2010, francesco perillo wrote:

  Another option would be to have the packages split: the first one,
  monolithic, is the base package, the mandatory one. All the
  optional packages have the base package as pre-requisite and each
  one has its own client pre-requistite... a bit like the php
  packaging... So every user may install the base package and the
  install only the optional that he needs

it's quite obvious that this is the long-term way to go :)

i have a mail cooking for quite some time, primarily as some kind of 
feedback to viktor's oft-asked question as to make harbour 
packaging-friendly, but the whole splitting- and packaging-idea raises 
so many questions and problems that thus far i've never had the 
inspiration to sit tight long enough to organize my thoughts and 
actually write the mail. maybe my unconscious is thinking if i wait 
long enough, it writes itself :)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] What about evolve harbour name?

2009-12-31 Thread Tamas TEVESZ
On Thu, 31 Dec 2009, Massimo Belgrano wrote:

  What about evolve harbour name  HarbourPro
  pro Is for a professiona product

it is already there.

on top of that, ject has been added for **EVEN MORE** professionalism.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] ieeefp.h - what's the significance?

2009-12-23 Thread Tamas TEVESZ
On Wed, 23 Dec 2009, Przemysław Czerpak wrote:

hi,

   on platforms where available, what is the significance of including 
   ieeefp.h, given that even without it, things seem to be doing OK?
  
  Probably nothing though sometimes is good to check the details in
  platform documentation. It's possible that in ieeefp.h some functionality
  is extended, i.e. some math functions from math.h can be replaced by
  C99 compatible macros which can operate on any floating point types.

so, if available, using these is desirable?

i'm asking because looking at current src/rtl/math.c, except for a few 
specific cases, isinf() is used:

334 #   if defined( HB_OS_SUNOS )
335  else if( !finite( dResult ) )
336 #   elif defined( HB_OS_OS2 )
337  else if( !isfinite( dResult ) )
338 #   else
339  else if( isinf( dResult ) )
340 #   endif

at the same time, looking at the solaris manuals for finite(),
isinf() and finite() here (won't have access to my sol box till next 
year):

http://docs.sun.com/app/docs/doc/819-2246/isinf-3m?l=Jaa=view
http://docs.sun.com/app/docs/doc/819-2246/isfinite-3m?l=Jaa=view
http://docs.sun.com/app/docs/doc/801-6680-03/6i11qck75?a=view

it seems that the currently special-cased finite() for hb_os_sunos 
specifically fits your above explanation less than as if it was to let 
use isinf() as well.

i may very well be misunderstanding you, though..

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] ieeefp.h - what's the significance?

2009-12-23 Thread Tamas TEVESZ
On Wed, 23 Dec 2009, Przemysław Czerpak wrote:

hi,

sorry to be so blunt, but the more i read, the less i understand ;)

  isinf() and isfinite() are C99 extensions so they are not available if
  C99 features are not enabled.
  There is problem with non GCC unix builds - they do not use HB_MATH_ERRNO
  handler (I'll fix it in next commit) and it's the reason why current
  src/rtl/math.c. do not need ieeefp.h.

ok, so there are two places where this is used, in src/rtl/math.c:334 
onwards and src/vm/itemapi.c:2250 onwards.

they are even used for the same purpose, to check whether or not to 
signal a range error of sorts on a numeric argument.

yet the one in itemapi.c is a macro with a screenful of tests for 
platforms and compilers and whatnot, whereas the one in math.c is a 
very simple conditional for os2-sunos-all-the-rest. notably, it 
doesn't have a special case for os/2 -- nb i do not know if
defined( __RSXNT__ ) || defined( __EMX__ ) covers _all_ of os2; if 
it does, then scratch this last remark, but then the notation is 
inconstent.

why is this difference?

(i probably should have picked something less hardcore...)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] two small portability enhancements

2009-12-23 Thread Tamas TEVESZ

hi,

the attached and below inlined does the following:

- hunk #1 prepares for when IPV6_ADD_MEMBERSHIP is defined by the 
  system; it is very synonymous with IPV6_JOIN_GROUP.
- hunk #2 makes initseg startup work with coff executables. (ok, 
  despite the heritage, i really don't know whether this includes pe 
  too :)

for #2, it might be that a simpler solution exists (macro-wise), but i 
am not smart enough to have that figured out.

Index: src/rtl/hbsocket.c
===
--- src/rtl/hbsocket.c  (revision 13390)
+++ src/rtl/hbsocket.c  (working copy)
@@ -2484,6 +2484,9 @@
   if( err  0 )
   {
  mreq.ipv6mr_interface = 0;
+#if !defined( IPV6_JOIN_GROUP )  defined( IPV6_ADD_MEMBERSHIP )
+#   define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
+#endif
  ret = setsockopt( sd, IPPROTO_IPV6, IPV6_JOIN_GROUP, ( const char * ) 
mreq, sizeof( mreq ) );
  hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
  return ret;
Index: include/hbinit.h
===
--- include/hbinit.h(revision 13390)
+++ include/hbinit.h(working copy)
@@ -136,13 +136,20 @@
   static void func( void ) \
   {
 
-   #define HB_CALL_ON_STARTUP_END( func ) \
-  } \
-  HB_INIT_FUNCTION_REF( func ) \
-  HB_EXTERN_END \
-  asm ( .section .init\n\tcall  HB_MACRO2STRING( func ) \n\t.section 
.text\n\t );
+   #if defined( _M_COFF )
+  #define HB_CALL_ON_STARTUP_END( func ) \
+ } \
+ HB_INIT_FUNCTION_REF( func ) \
+ HB_EXTERN_END \
+ asm ( .section .init, \x\\n\tcall  HB_MACRO2STRING( func ) 
\n\t.section .text\n\t );
+   #else
+  #define HB_CALL_ON_STARTUP_END( func ) \
+ } \
+ HB_INIT_FUNCTION_REF( func ) \
+ HB_EXTERN_END \
+ asm ( .section .init\n\tcall  HB_MACRO2STRING( func ) \n\t.section 
.text\n\t );
+   #endif
 
-
#define HB_INIT_FUNCTION_REF( func )\
   extern void * func##_ref_( void ); \
   void * func##_ref_( void ) \


-- 
[-]

mkdir /nonexistentIndex: src/rtl/hbsocket.c
===
--- src/rtl/hbsocket.c	(revision 13390)
+++ src/rtl/hbsocket.c	(working copy)
@@ -2484,6 +2484,9 @@
   if( err  0 )
   {
  mreq.ipv6mr_interface = 0;
+#if !defined( IPV6_JOIN_GROUP )  defined( IPV6_ADD_MEMBERSHIP )
+#   define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
+#endif
  ret = setsockopt( sd, IPPROTO_IPV6, IPV6_JOIN_GROUP, ( const char * ) mreq, sizeof( mreq ) );
  hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
  return ret;
Index: include/hbinit.h
===
--- include/hbinit.h	(revision 13390)
+++ include/hbinit.h	(working copy)
@@ -136,13 +136,20 @@
   static void func( void ) \
   {
 
-   #define HB_CALL_ON_STARTUP_END( func ) \
-  } \
-  HB_INIT_FUNCTION_REF( func ) \
-  HB_EXTERN_END \
-  asm ( .section .init\n\tcall  HB_MACRO2STRING( func ) \n\t.section .text\n\t );
+   #if defined( _M_COFF )
+  #define HB_CALL_ON_STARTUP_END( func ) \
+ } \
+ HB_INIT_FUNCTION_REF( func ) \
+ HB_EXTERN_END \
+ asm ( .section .init, \x\\n\tcall  HB_MACRO2STRING( func ) \n\t.section .text\n\t );
+   #else
+  #define HB_CALL_ON_STARTUP_END( func ) \
+ } \
+ HB_INIT_FUNCTION_REF( func ) \
+ HB_EXTERN_END \
+ asm ( .section .init\n\tcall  HB_MACRO2STRING( func ) \n\t.section .text\n\t );
+   #endif
 
-
#define HB_INIT_FUNCTION_REF( func )\
   extern void * func##_ref_( void ); \
   void * func##_ref_( void ) \
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] some dependency problem in hbffind.c

2009-12-22 Thread Tamas TEVESZ

hi,

preparing a platform that has no S_IFSOCK/S_ISSOCK, i protected the 
hb alikes like this:

include/hbapifs.h:

#if defined( S_ISSOCK )
#  define HB_FA_SOCKET  HB_FA_SPARSE  /* S_ISSOCK() */
#endif

src/common/hbffind.c:

#if defined( S_ISSOCK )
   if( S_ISSOCK( raw_attr ) ) ulAttr |= HB_FA_SOCKET;
#endif

this, on a platform that does have S_ISSOCK, results in

cc   -DHB_OS_OPENSERVER6 -I. -I../../../../../include -K udk -K pthread   -o 
hbffind.o -c ../../../hbffind.c
UX:acomp: ERROR: ../../../hbffind.c, line 246: undefined symbol: HB_FA_SOCKET
UX:acomp: ERROR: ../../../hbffind.c, line 318: undefined symbol: HB_FA_SOCKET

this seems to be correct, since hbapifs.h doesn't (directly or 
indirectly) include sys/stat.h, thus has no knowledge of 
macros/flags actually defined in the system.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Harbour 2.0.0: Released

2009-12-22 Thread Tamas TEVESZ
On Tue, 22 Dec 2009, Viktor Szakáts wrote:

  I'm glad to announce that after a very heavy 16 months 
  of development, the final, stable version 2.0.0 is finally 
  released.

incredible job!

a toast a cheers to all those involved!

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] unify TODOs/iTODOs

2009-12-22 Thread Tamas TEVESZ

hi,

the attached unifies all int TODOs to int iTODOs, for your 
grepping pleasure.

-- 
[-]

mkdir /nonexistentIndex: src/vm/thread.c
===
--- src/vm/thread.c	(revision 13370)
+++ src/vm/thread.c	(working copy)
@@ -786,7 +786,7 @@
*th_id = _beginthread( start_func, NULL, 128 * 1024, Cargo );
th_h = *th_id;
 #else
-   { int TODO_MT; }
+   { int iTODO_MT; }
*th_id = ( HB_THREAD_ID ) 0;
th_h = ( HB_THREAD_HANDLE ) 0;
 #endif
@@ -818,7 +818,7 @@
 */
return rc == NO_ERROR || rc == ERROR_INVALID_THREADID;
 #else
-   { int TODO_MT; }
+   { int iTODO_MT; }
return FALSE;
 #endif
 }
@@ -839,7 +839,7 @@
APIRET rc = DosWaitThread( th_h, DCWW_NOWAIT );
return rc == NO_ERROR || rc == ERROR_INVALID_THREADID;
 #else
-   { int TODO_MT; }
+   { int iTODO_MT; }
return FALSE;
 #endif
 }
Index: src/vm/dynlibhb.c
===
--- src/vm/dynlibhb.c	(revision 13370)
+++ src/vm/dynlibhb.c	(working copy)
@@ -130,7 +130,7 @@
  hDynLib = ( void * ) dlopen( hb_parc( 1 ), RTLD_LAZY | RTLD_GLOBAL );
 #else
  {
-int TODO;
+int iTODO;
  }
 #endif
  /* set real marker */
Index: src/common/hbgete.c
===
--- src/common/hbgete.c	(revision 13370)
+++ src/common/hbgete.c	(working copy)
@@ -233,7 +233,7 @@
 * to the above #elif ... to eliminate warning [druzus]
 */
 
-   int TODO;
+   int iTODO;
 
HB_SYMBOL_UNUSED( szName );
HB_SYMBOL_UNUSED( szValue );
Index: src/common/hbffind.c
===
--- src/common/hbffind.c	(revision 13370)
+++ src/common/hbffind.c	(working copy)
@@ -712,7 +712,7 @@
 #else
 
{
-  int TODO; /* TODO: for given platform */
+  int iTODO; /* TODO: for given platform */
 
   /* HB_SYMBOL_UNUSED( ffind ); */
 
@@ -865,7 +865,7 @@
 
  {
 /* Intentionally do nothing */
-int TODO; /* TODO: for given platform */
+int iTODO; /* TODO: for given platform */
 
 HB_SYMBOL_UNUSED( info );
  }
Index: src/common/hbfsapi.c
===
--- src/common/hbfsapi.c	(revision 13370)
+++ src/common/hbfsapi.c	(working copy)
@@ -330,7 +330,7 @@
}
 #else
{
-  int TODO; /* To force warning */
+  int iTODO; /* To force warning */
 
   fExist = FALSE;
}
@@ -393,7 +393,7 @@
}
 #else
{
-  int TODO; /* To force warning */
+  int iTODO; /* To force warning */
 
   fExist = FALSE;
}
@@ -455,7 +455,7 @@
}
 #else
{
-  int TODO; /* To force warning */
+  int iTODO; /* To force warning */
 
   fExist = FALSE;
}
Index: src/rtl/gtstd/gtstd.c
===
--- src/rtl/gtstd/gtstd.c	(revision 13370)
+++ src/rtl/gtstd/gtstd.c	(working copy)
@@ -407,7 +407,7 @@
}
 #else
{
-  int TODO; /* TODO: */
+  int iTODO; /* TODO: */
}
 #endif
 
Index: src/rtl/hbsocket.c
===
--- src/rtl/hbsocket.c	(revision 13370)
+++ src/rtl/hbsocket.c	(working copy)
@@ -1627,7 +1627,7 @@
 #elif defined( IN6ADDR_ANY_INIT )
   memcpy( sa.sin6_addr, s_in6addr_any, sizeof( struct in6_addr ) );
 #else
-  int TODO;
+  int iTODO;
 #endif
   *pSockAddr = memcpy( hb_xgrab( sizeof( sa ) + 1 ), sa, sizeof( sa ) );
   *puiLen = ( unsigned ) sizeof( sa );
@@ -1648,7 +1648,7 @@
   else
  hb_socketSetRawError( HB_SOCKET_ERR_AFNOSUPPORT );
 #else
-  int TODO;
+  int iTODO;
 #endif
}
 #else
@@ -1699,7 +1699,7 @@
 szAddr = inet_ntop( AF_INET, sa-sin6_addr, buf, sizeof( buf ) );
 #  else
 {
-   int TODO;
+   int iTODO;
szAddr = NULL;
 }
 #  endif
@@ -1853,7 +1853,7 @@
 szAddr = inet_ntop( AF_INET, sa-sin6_addr, buf, sizeof( buf ) );
 #  else
 {
-   int TODO;
+   int iTODO;
szAddr = NULL;
 }
 #  endif
@@ -2367,7 +2367,7 @@
if( ret == 0 )
   ret = 1;
 #else
-   int TODO;
+   int iTODO;
HB_SYMBOL_UNUSED( sd );
HB_SYMBOL_UNUSED( fBlocking );
hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT );
@@ -2391,7 +2391,7 @@
ret = setsockopt( sd, IPPROTO_TCP, TCP_NODELAY, ( const char * ) val, sizeof( val ) );
hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
 #else
-   int TODO;
+   int iTODO;
HB_SYMBOL_UNUSED( sd );
HB_SYMBOL_UNUSED( fNoDelay );
hb_socketSetRawError( HB_SOCKET_ERR_NOSUPPORT );
@@ -2472,7 +2472,7 @@
   hb_socketSetOsError( ret != -1 ? 0 : HB_SOCK_GETERROR() );
   return ret;
 #else
-  int TODO;
+  int iTODO;
 #endif
}
 #if defined( HB_HAS_INET6 )
@@ -2494,7 +2494,7 @@

[Harbour] ieeefp.h - what's the significance?

2009-12-22 Thread Tamas TEVESZ

hi,

on platforms where available, what is the significance of including 
ieeefp.h, given that even without it, things seem to be doing OK?

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Tagging 2.0.0: Tomorrow

2009-12-21 Thread Tamas TEVESZ
On Mon, 21 Dec 2009, Viktor Szakáts wrote:

hi,

  start making test builds on various platforms, so 

my batch looks fine (linux host to dos/watcom, os2/watcom, win/watcom, 
win/mingw, linux/watcom, linux/gcc, linux/sunpro, linux/gcc, both c 
and cpp; linux/sunpro/cpp is unknown (because of recent header changes 
in glibc, which sunproCC didn't yet follow)).

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Any commits/fixes pending?

2009-12-19 Thread Tamas TEVESZ
On Sat, 19 Dec 2009, Viktor Szakáts wrote:

hi,

  I'd like to ask everyone if there are any 
  patches, commits or fixes pending? (besides 
  hbqt related modules)

this should worth a yes/no/after release:

Message-ID: alpine.deb.2.00.0912160438580.27...@dawn.royalcomp.hu

or alternatively

http://old.nabble.com/g%2B%2B2.95-g%2B%2B3.3-bad-build-td26806223.html

considering that currently all g++ v4 builds are broken, the 
answer should be a yes, though :) (gcc 2.95 is omnipresent on 
less-than-mainstream-but-still-important platforms, so compatibility 
with that should be a quite high priority.)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Any commits/fixes pending?

2009-12-19 Thread Tamas TEVESZ
On Sat, 19 Dec 2009, Viktor Szakáts wrote:

   considering that currently all g++ v4 builds are broken, the 
   answer should be a yes, though :) (gcc 2.95 is omnipresent on 
   less-than-mainstream-but-still-important platforms, so compatibility 
   with that should be a quite high priority.)
  
  Probably yes, especially since lot of ppl still use 3.4.x 
  even on Windows, although it's only a real problem if someone 
  is using 3.4.x with QT 4.5.x, even then it's currently not 
  fatal as HBQT uses an empty init/exit routine ATM.
  
  I don't know though how grave the problem is, so, if it's 
  not an easy fix, I think can live with that issue until next 

it's an easy one (switch g++ to static startup), in fact przemek has 
just included this in his list 3 minutes before i sent my mail, so i 
consider this taken are of


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] GTXWC clipboard paste: hang

2009-12-18 Thread Tamas TEVESZ
On Fri, 18 Dec 2009, Przemysław Czerpak wrote:

hi,

  I cannot replicate it (probably because I cannot exactly replicate your
  environment settings) so I have to guess but probably you are right.
  Anyhow thank you very much for your tests. Finally I've found a while
  to clean the selection code in GTXWC.

thank you!

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] r13300 xbp build failure

2009-12-18 Thread Tamas TEVESZ

hi,

../../../../../bin/linux/gcc/harbour ../../../xbpwindow.prg 
  -I../../../../../contrib/hbqt -i../../../../../include -n1 -q0 -w3 
  -es2 -kmo -i- -l  
../../../xbpwindow.prg(785) Warning W0032
  Variable 'LSUCCESS' is assigned but not used in function 
'XBPWINDOW_DESTROY(0)'
../../../xbpwindow.prg(800) Warning W0032
  Variable 'LSUCCESS' is assigned but not used in function 
'XBPWINDOW_DISCONNECT(0)'


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] GTXWC clipboard paste: hang

2009-12-17 Thread Tamas TEVESZ
On Thu, 17 Dec 2009, Przemysław Czerpak wrote:

hi,

   the symptom is that when there is already data in the primary when 
   this app is started, the first inkey(0) is immediately satisfied (and 
   then it shows the correct content for the primary selection).
   
   this doesn't happen absolutely always, but it does most of the time. 
   if the primary is empty at app startup, then it never happens.

this one is solved,, thank you.

   so the guess it that *something* is there that causes clients to exit 
   unexpectedly. it is not even sure that the client that exits is the 

this one is not.

  Your VM crashes when selection owner does not response. I'll add code
  to disable own selection in GTXWC exit phase and I hope it will help
  anyhow real fix should be done in WM code because your description
  suggests that it may have very serious problems and even crash if
  selection owner terminates suddenly without clearing the selection
  i.e. due to delivered asynchronous signal (killall myapp).

thanks for the explanation.

never mind about the second issue just yet, i will bring it up with wm 
people.

thanks,


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] GTXWC clipboard paste: hang

2009-12-17 Thread Tamas TEVESZ
On Fri, 18 Dec 2009, Przemysław Czerpak wrote:

hi,

  Can you check if problem can be resolved if you add at the end of your
  test application:
  
 hb_gtInfo( HB_GTI_CLIPBOARDDATA,  )

no, but i managed to strace the xterm that got picked by the Client 
Killer Phenomenon.

it's last breath was this:

X Error of failed request:  BadWindow (invalid Window parameter)
Major opcode of failed request: 2  (X_ChangeWindowAttributes)
Resource id in failed request:  0x560001e
Serial number of failed request:  1107
Current serial number in output stream:  1108

at another try i attached xev to the victim:

this is when focus leaves the client so i can push buttons in my text 
app (using sloppy focus):

FocusOut event, serial 17, synthetic NO, window 0x5af,
mode NotifyNormal, detail NotifyNonlinear

this is when my test app has exited, and i focus the victim client 
again. all the next events happen in a very short time right after the 
pointer enters the client area:

FocusIn event, serial 17, synthetic NO, window 0x5af,
mode NotifyNormal, detail NotifyNonlinear

KeymapNotify event, serial 17, synthetic NO, window 0x0,
keys:  4294967177 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 
  
   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

these two above events happen normally when any client gets the focus. 
the below events are what seem to be coming unwanted:

UnmapNotify event, serial 17, synthetic NO, window 0x5af,
event 0x5af, window 0x5af, from_configure NO

FocusOut event, serial 17, synthetic NO, window 0x5af,
mode NotifyNormal, detail NotifyAncestor

DestroyNotify event, serial 17, synthetic NO, window 0x5af,
event 0x5af, window 0x5a0001a

DestroyNotify event, serial 17, synthetic NO, window 0x5af,
event 0x5af, window 0x5af

i have just found that i've been running wm with logs saved all along 
the way, and i can confirm from those logs that xterms have been 
dying with the same message during all this experiment.

even more interesting.

its _only_ the xterms. i have now tried having other apps killed by 
this method, but it's always the xterm that dies.

ok, i have found a pattern i seem to be able to reliably reproduce.

i am running XTerm(235) (ubuntu intrepid x64). the test app is on a 
remote box, which is ubuntu karmic x64. ssh in, start the test app (it 
doesn't matter whether x is via ssh or via a direct connection).

when the test app says to copy something in, copy something in from an 
xterm. then push through the test app, and after it exits, give focus 
to the xterm you have copied from (this may need to be done several 
times). i could kill the xterm in at most 5 tries (of giving it focus, 
and taking focus away from it).

i've tried other apps, xlib-based, xaw-based, gtk-based, i've even 
tried rxvt, but it is invariably the xterm that dies.

i have tried XTerm(243) (this is the latest in ubuntu), same effect.

i've built myself a smokin' fresh XTerm(253), same effect.

so thus far every finger points at either xterm or xterm-wm 
interaction being somehow at fault, and we could have been chasing 
ghosts...


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] g++2.95/g++3.3 bad build

2009-12-16 Thread Tamas TEVESZ
On Wed, 16 Dec 2009, Przemysław Czerpak wrote:

hi,

  The problem is trivial. GCC-2.96 when C++ mode is used ignores
  __attribute__ ((constructor)) and does not add functions with
  above attribute to .ctors segment. Looks like it was fixed in
  one of GCC-3.3x releases but I do not know the exact version.

i think 3.3.6 was the last of the 3.3s, but anyway.

i have a hunch that i am verifying now (only 3.3 g++ is done so far, 
this is a slow machine, but so far the only result i have is 
promising): change the order of initializers.

this makes g++ fall into the static category (because of __cplusplus), 
not into using fun attributes (because of __GNUC__); moreover this 
makes all c++ compilers fall into this, which i gather is preferred, 
if one is capable of doing c++-style initializers.

this has so far fixed g++-3.3, but i'm still running tests and 
re-tests and re-tests.

Index: include/hbinit.h
===
--- include/hbinit.h(revision 13266)
+++ include/hbinit.h(working copy)
@@ -112,6 +112,33 @@
#define HB_CALL_ON_STARTUP_END( func ) \
   }
 
+#elif defined( HB_STATIC_STARTUP ) || defined( __cplusplus )
+
+   #if defined( HB_PRAGMA_STARTUP ) || defined( HB_DATASEG_STARTUP )
+  #error Wrong macros set for startup code - clean your make/env settings.
+   #endif
+
+   #define HB_INIT_SYMBOLS_BEGIN( func ) \
+  static HB_SYMB symbols_table[] = {
+
+   #define HB_INIT_SYMBOLS_EX_END( func, module, id, vpcode ) \
+  }; \
+  static PHB_SYMB symbols = hb_vmProcessSymbols( symbols_table, (USHORT) ( 
sizeof( symbols_table ) / sizeof( HB_SYMB ) ), (module), (id), (vpcode) ); \
+
+   #define HB_CALL_ON_STARTUP_BEGIN( func ) \
+  static int func( void ) \
+  {
+
+   /* this allows any macros to be preprocessed first
+  so that token pasting is handled correctly */
+   #define HB_CALL_ON_STARTUP_END( func ) \
+  _HB_CALL_ON_STARTUP_END( func )
+
+   #define _HB_CALL_ON_STARTUP_END( func ) \
+ return 0; \
+  } \
+  static int static_int_##func = func();
+
 #elif defined( HB_INITSEG_STARTUP )
 
#if defined( HB_PRAGMA_STARTUP ) || defined( HB_DATASEG_STARTUP )
@@ -216,33 +243,6 @@
 *  See the C output of a generated prg for example
 */
 
-#elif defined( HB_STATIC_STARTUP ) || defined( __cplusplus )
-
-   #if defined( HB_PRAGMA_STARTUP ) || defined( HB_DATASEG_STARTUP )
-  #error Wrong macros set for startup code - clean your make/env settings.
-   #endif
-
-   #define HB_INIT_SYMBOLS_BEGIN( func ) \
-  static HB_SYMB symbols_table[] = {
-
-   #define HB_INIT_SYMBOLS_EX_END( func, module, id, vpcode ) \
-  }; \
-  static PHB_SYMB symbols = hb_vmProcessSymbols( symbols_table, (USHORT) ( 
sizeof( symbols_table ) / sizeof( HB_SYMB ) ), (module), (id), (vpcode) ); \
-
-   #define HB_CALL_ON_STARTUP_BEGIN( func ) \
-  static int func( void ) \
-  {
-
-   /* this allows any macros to be preprocessed first
-  so that token pasting is handled correctly */
-   #define HB_CALL_ON_STARTUP_END( func ) \
-  _HB_CALL_ON_STARTUP_END( func )
-
-   #define _HB_CALL_ON_STARTUP_END( func ) \
- return 0; \
-  } \
-  static int static_int_##func = func();
-
 #elif defined( HB_PRAGMA_STARTUP ) || \
   defined( __BORLANDC__ ) || defined( __LCC__ ) || defined( __POCC__ ) || 
defined( __XCC__ )
 

  It will be good to check exact version to enable in hbinit.h
  HB_STATIC_STARTUP initialization for older GCC versions using
  C++ mode. Or maybe we should enable it by default for _ALL_
  (also MSVC) compilers using C++ mode? Unlike all other startup
  initialization methods this one uses only standard C++ functionality
  without any compiler specific tricks so it's fully portable code
  in C++ world.

i think i am in favor of this.


-- 
[-]

mkdir /nonexistentIndex: include/hbinit.h
===
--- include/hbinit.h	(revision 13266)
+++ include/hbinit.h	(working copy)
@@ -112,6 +112,33 @@
#define HB_CALL_ON_STARTUP_END( func ) \
   }
 
+#elif defined( HB_STATIC_STARTUP ) || defined( __cplusplus )
+
+   #if defined( HB_PRAGMA_STARTUP ) || defined( HB_DATASEG_STARTUP )
+  #error Wrong macros set for startup code - clean your make/env settings.
+   #endif
+
+   #define HB_INIT_SYMBOLS_BEGIN( func ) \
+  static HB_SYMB symbols_table[] = {
+
+   #define HB_INIT_SYMBOLS_EX_END( func, module, id, vpcode ) \
+  }; \
+  static PHB_SYMB symbols = hb_vmProcessSymbols( symbols_table, (USHORT) ( sizeof( symbols_table ) / sizeof( HB_SYMB ) ), (module), (id), (vpcode) ); \
+
+   #define HB_CALL_ON_STARTUP_BEGIN( func ) \
+  static int func( void ) \
+  {
+
+   /* this allows any macros to be preprocessed first
+  so that token pasting is handled correctly */
+   #define HB_CALL_ON_STARTUP_END( func ) \
+  _HB_CALL_ON_STARTUP_END( func )
+
+   #define 

Re: [Harbour] GTXWC clipboard paste: hang

2009-12-16 Thread Tamas TEVESZ
On Wed, 16 Dec 2009, Viktor Szakáts wrote:

hi,

  No educated bug report, but just now I tried to 
  coppy/paste some text from OS X Mail to my app 
  running GTXWC, and the app just hung with 100% 
  CPU consumption.

i notice i cannot paste (nor copy) to/from xwc at all ;)

anyway, if seems that XWC_DEBUG activates a whole lot of 
clipboard-related debug stuff, do you get any clue with that?

(how is copy-pasting w/ xwc supposed to work? just like any other x 
app i'd like to hope but still asking, point mouse, click, hold/point 
mouse, hit middle button?)


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] g++2.95/g++3.3 bad build

2009-12-16 Thread Tamas TEVESZ
On Wed, 16 Dec 2009, Tamas TEVESZ wrote:

hi,

  i have a hunch that i am verifying now (only 3.3 g++ is done so far, 
  this is a slow machine, but so far the only result i have is 
  promising): change the order of initializers.

fyi that fixed g++ 2.95 as well as 3.3.6, without any noticeable ill 
effect to others.

It will be good to check exact version to enable in hbinit.h
HB_STATIC_STARTUP initialization for older GCC versions using
C++ mode. Or maybe we should enable it by default for _ALL_
(also MSVC) compilers using C++ mode? Unlike all other startup
initialization methods this one uses only standard C++ functionality
without any compiler specific tricks so it's fully portable code
in C++ world.
  
  i think i am in favor of this.

even more so :)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] GTXWC clipboard paste: hang

2009-12-16 Thread Tamas TEVESZ
On Wed, 16 Dec 2009, Viktor Szakáts wrote:

   No educated bug report, but just now I tried to 
   coppy/paste some text from OS X Mail to my app 
   running GTXWC, and the app just hung with 100% 
   CPU consumption.

this is a long shot, but.

is this even supposed to work? i do not know the level of integration 
of x11 in osx, but there could be problems (there certainly have been 
in the past, according to my friend google).

can you copy and paste between other x11 apps and native apps? say, 
something like abiword and whatever-notepad-is-on-osx (but anyhow do 
not use xterm and terminal.app for these tests). you should try 
selecting (with the mouse, just selecting, nothing else) in abiword, 
and pasting in $notepad; selecting and edit-copy in abiword, pasting 
in $notepad.

this copy-paste thing in x11 is pretty much unlike anything else. 
there are two places something can end up, a primary selection (this 
gets stuff if you select text in an xterm, for example -- this is 
sort of an implicit buffer), and a clipboard selection (this gets 
stuff if you explicitly copy in something, by means of edit-copy in 
an application). far as i can tell, gtxwc plays it safe and always 
updates both selections (this does seem to work well), so it could 
well be an integration issue on osx? trying it with an independent x 
app could reveal what might be wrong.

there's a very condensed page about this whole business at
 
 http://www.jwz.org/doc/x-cut-and-paste.html

   anyway, if seems that XWC_DEBUG activates a whole lot of 
   clipboard-related debug stuff, do you get any clue with that?
  
  I didn't try that yet, for that I'll need to rebuild 
  everything, which is not option these days.

turns out it doesn't worth it without some more surgery. with 
XWC_DEBUG, it just gets so overly verbose no way to cherrypick the 
relevant piece anyway :)

   (how is copy-pasting w/ xwc supposed to work? just like any other x 
   app i'd like to hope but still asking, point mouse, click, hold/point 
   mouse, hit middle button?)
  
  This application use hb_gtInfo( HB_GTI_CLIPBOARDDATA ) to 
  copy and paste on all platforms/GTs. It works alright in 
  GTWIN and GTWVT.

this seems to be working fine on linux, well almost. this (as far as i 
can tell) seems intentional in gtxwc.c:3072, but it's as if the 
selections were cleared by this as well (so anything i have in primary 
when an xwc app starts, hb_gtInfo( HB_GTI_CLIPBOARDDATA ) will return 
empty -- this is somewhat surprising, but its not to say this is a 
huge problem or something).

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] very strange compile error

2009-12-16 Thread Tamas TEVESZ

hi,

while doing a new port, came across this:

g++   -DHB_OS_UNIXWARE -I. -I../../../../../include -D_SCO_DS -Wall -W 
  -O3   -o expropt1.o -c ../../../expropt1.c
../../../expropt1.c: In function `struct HB_EXPR_ * 
hb_compExprNewNegate(HB_EXPR_ *, _HB_COMMON *)':
../../../expropt1.c:1066: integer constant out of range

this only happens with g++. 2.95 is the only one there is, and it is 
entirely possible it is a compiler error, as it has other deficiencies 
it theoretically shouldn't.

the absolute minimal example that triggers the problem is:

$ cat y.c 

#include limits.h
#include stdio.h

int main( void )
{
printf(%lld\n, LLONG_MAX);
return 0;
}

$ cc y.c
$ ./a.out 
9223372036854775807
$ CC y.c
$ ./a.out 
9223372036854775807
$ gcc y.c 
$ ./a.out 
9223372036854775807
$ g++ y.c 
y.c: In function `int main()':
y.c:7: integer constant out of range
$ 

gcc version 2.95.3pl1 d - 20020710 (build) - OU8.0.1

does anyone perhaps have any idea?

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] GTXWC clipboard paste: hang

2009-12-16 Thread Tamas TEVESZ
On Thu, 17 Dec 2009, Przemysław Czerpak wrote:

hi,

   I've just checked and same OS X GTXWC app picked what was 
   placed to clipboard before starting the app (or even 
   starting X11 for that matter).
   I'll keep an open eye to report any clipboard problems 
   here.
  
  Please try it after:
 2009-12-17 03:45 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

it is better now, in the sense that now the primary is retained and 
can be reliably read by hb, but a small artifact remains.

i am using a test along the lines of:

#include inkey.ch
#include hbgtinfo.ch

FUNCTION MAIN()

   REQUEST HB_GT_XWC, HB_GT_CRS, HB_GT_TRM

   hb_gtInfo( HB_GTI_CLOSABLE, .F. )
   hb_gtInfo( HB_GTI_WINTITLE, X Clipboard/PrimarySelection test )
   hb_gtInfo( HB_GTI_SELECTCOPY, .T. )
   hb_gtInfo( HB_GTI_RESIZABLE, .F. )

   @  1, 1 SAY Copy in something (key)
   InKey(0)

   @  2, 1 SAY Clipboard data:
   alert( hb_gtInfo( HB_GTI_CLIPBOARDDATA ) )

   @  3, 1 SAY Copying in 'erglebergle' (key)
   hb_gtInfo( HB_GTI_CLIPBOARDDATA, erglebergle )
   InKey(0)

   @  4, 1 SAY Paste primary (key)
   InKey(0)

   @  5, 1 SAY Paste clipboard (key)
   InKey(0)

   @  6, 1 SAY In clipboard:
   alert( HB_GTINFO( HB_GTI_CLIPBOARDDATA ) )

   @  8, 1 SAY Exit (key)

   InKey(0)

RETURN NIL 

(that is, you are supposed to do what it says by copying from and 
pasting into other clients when the test app says so)

the symptom is that when there is already data in the primary when 
this app is started, the first inkey(0) is immediately satisfied (and 
then it shows the correct content for the primary selection).

this doesn't happen absolutely always, but it does most of the time. 
if the primary is empty at app startup, then it never happens.

another artifact is that upon exit (i start it from an xterm), it 
leaves some garbage someplace, which which causes my xterm to 
disappear if i press middle button. it's nothing that i could catch 
with careful use of xxd waiting for some binary junk, what's more, at 
one occasion this even killed my windowmaker (ok, it's not the 
stablest wm in the world, but for a couple of month, since 
outstandings have been fixed, i've been having much less problems with 
it than i used to).

even worse, this doesn't seem to be tied to middle button events. i 
have had it by middle button, up arrow in shell, ^C in a shell line i 
decided not to execute...

so the guess it that *something* is there that causes clients to exit 
unexpectedly. it is not even sure that the client that exits is the 
one that has the focus (i was just at this moment playing with other 
xterms when this one that runs my mua decided it's been long since i 
last saw my desktop background...)


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] very strange compile error

2009-12-16 Thread Tamas TEVESZ
On Thu, 17 Dec 2009, Przemysław Czerpak wrote:

hi,

   g++   -DHB_OS_UNIXWARE -I. -I../../../../../include -D_SCO_DS -Wall -W 
 -O3   -o expropt1.o -c ../../../expropt1.c
   ../../../expropt1.c: In function `struct HB_EXPR_ * 
   hb_compExprNewNegate(HB_EXPR_ *, _HB_COMMON *)':
   ../../../expropt1.c:1066: integer constant out of range

  2. when g++ is used then in header files LLONG_MAX constant
 is defined without LL suffix, i.e.:
#define LLONG_MAX 9223372036854775807
 instead of:
#define LLONG_MAX 9223372036854775807LL

this is it, thanks.

  In both cases it's not Harbour problem and if the results are correct
  then you can ignore it. 2.95 is quite old version so I do not think
  it should be reported to GCC authors but if it's the only port of GNUC
  for SCO then you may want to do inform about it someone who manage it

it's quite unlikely there's anyone left there :)

i have manually corrected the above issue, now we got a bit further, 
but it's starting again with errors that i think ever should be there 
in the first place (

g++  -pthread -L../../../../../lib/unixware/gcc   -o 
../../../../../bin/unixware/gcc/hbpp hbpp.o -lhbnortl -lhbcommon -lm 
Undefined   first referenced
symbol  in file
std::exit(int)  libhbnortl.a(nortl.o)
UX:ld: ERROR: Symbol referencing errors. No output written to 
../../../../../bin/unixware/gcc/hbpp

wtf, no way this can be right)

this is so creepy that i think i'll give up on g++ as a compiler for 
now.

thanks for the hint, though, you teach me new stuff every day :)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13250] trunk/harbour

2009-12-15 Thread Tamas TEVESZ
On Tue, 15 Dec 2009, dru...@users.sourceforge.net wrote:

hi,

* harbour/include/hbinit.h
  + added new alternative form for initialization code activated
by HB_INITSEG_STARTUP macro. This method uses asm() directive
to store call to startup function in .init segment.

you are The Man. big thanks!

for me to work, i needed to mod it like this:

-  __asm__ ( .section .init\n\tcall  HB_MACRO2STRING( func ) \n\t );
+  asm ( .section .init\n\tcall  HB_MACRO2STRING( func ) \n\t.section 
.text\n\t );

ie. a .section .text appended to the end (__asm__ vs asm is probably 
compiler-specific, i'll just if this to the compiler), in both 
occurances.

shall i do this to section text too, or can it be added to your 
version without causing any ill effect on other platforms?

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13252] trunk/harbour

2009-12-15 Thread Tamas TEVESZ
On Tue, 15 Dec 2009, dru...@users.sourceforge.net wrote:

  * explicitly restore .text segment for compilers which do not make

commit typo, it says .init at the end too :)


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13253] trunk/harbour

2009-12-15 Thread Tamas TEVESZ
On Tue, 15 Dec 2009, dru...@users.sourceforge.net wrote:

hi

  Revision: 13253

now something is broken again. i'm not sure what, as at one point i 
had a working harbour (working at this stage i define as hbrun 
starts), now for all of gcc/c, native/c, native/c++, when trying to 
run hbrun, i get:

Error BASE/1003  Variable does not exist: S_AINCDIR 
   
Called from _APPMAIN(90)   

(gcc/c++ doesn't at the moment build because of some unrelated 
platform-specific issue).

for all posterity i have the following changed wrt r13253 hbinit.h:

--- hbinit.h(revision 13253)
+++ hbinit.h(working copy)
@@ -112,7 +112,8 @@
#define HB_CALL_ON_STARTUP_END( func ) \
   }
 
-#elif defined( HB_INITSEG_STARTUP )
+#elif ( defined( __USLC__ )  !defined( __cplusplus ) ) || \
+  defined( HB_INITSEG_STARTUP )
 
#define HB_INIT_SYMBOLS_BEGIN( func ) \
   static HB_SYMB symbols_table[] = {

hbtest, for example, runs fine, so this probably has nothing to do 
with this awesome work of yours in the startup area, but then i am at 
a loss what's gone booboo again.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13255] trunk/harbour

2009-12-15 Thread Tamas TEVESZ
On Tue, 15 Dec 2009, dru...@users.sourceforge.net wrote:

hi,

  Revision: 13255

  http://harbour-project.svn.sourceforge.net/harbour-project/?rev=13255view=rev
  Author:   druzus
  Date: 2009-12-15 23:24:29 + (Tue, 15 Dec 2009)
  
  Log Message:
  ---
  2009-12-16 00:24 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
  * use -n2 as default harbour compiler parameter in hb* scripts

that didn't really help, and it's getting even more strange.

the build log clearly shows harbour still being called with -n1, i 
checked the older ones, it was so all along the way as well.

the completely strange part is that if, using the very same options, 
copy-pasted from the build log, i build a private copy of hbrun, 
then it works.

so, the result of a make in the source tree gets me a 
bin/$plat/$comp/hbrun which gives BASE/1003

the following gives a working hbrun:

unixware714:~/hb/harbour$ env | fgrep HB
unixware714:~/hb/harbour$ gmake  ../log 21   
   
unixware714:~/hb/harbour$ ./bin/unixware/gcc/hbrun
Error BASE/1003  Variable does not exist: S_AINCDIR
Called from _APPMAIN(90)
   
unixware714:~/hb/harbour$ ./bin/unixware/gcc/harbour utils/hbrun/hbrun.prg 
-iinclude -n1 -q0 -w2 -es2 -kmo -i- -l  
unixware714:~/hb/harbour$ gcc -DHB_OS_UNIXWARE -I. -Iinclude -D_SCO_DS 
 -Wall -W -O3   -o hbrun.o -c hbrun.c
unixware714:~/hb/harbour$ gcc  -pthread -I. -Llib/unixware/gcc 
 -Iinclude -L/usr/X11R6/lib -ohbrun hbrun.o -lhbcplr -lhbpp
 -lhbcommon -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage 
 -lgtcgi -lgtpca -lgtstd -lgtcrs -lgtxwc -lgttrm -lhbrdd
 -lrddntx -lrddnsx -lrddcdx -lrddfpt -lhbsix -lhbhsx -lhbusrrdd 
 -lhbuddall -lhbrtl -lhbvm -lhbmacro -lhbcplr -lhbpp -lhbcommon
 -lhbpcre -lcurses -lX11 -lz -lsocket -lnsl -lresolv -lm
unixware714:~/hb/harbour$ ./hbrun -- runs fine

what gets me thinking is that the size difference between the two 
files is relatively big:

-rwxr-xr-x1 ice  other   3541060 Dec 16 00:54 ./hbrun   
   
-rwxr-xr-x1 ice  other   3541592 Dec 16 00:52 
bin/unixware/gcc/hbrun   

which they proportionally keep after being stripped:

-rwxr-xr-x1 ice  other   3252400 Dec 16 01:05 ./hbrun
-rwxr-xr-x1 ice  other   3252848 Dec 16 01:05 bin/unixware/gcc/hbrun

and even after a treat of `mcs -d': (this strips the .comment 
sections, which the native binutils populate with the exact versions 
of files, tools and stuff that were involved producing said elf 
object):

-rwxr-xr-x1 ice  other   3031452 Dec 16 01:05 ./hbrun
-rwxr-xr-x1 ice  other   3031900 Dec 16 01:05 bin/unixware/gcc/hbrun

there is no real (to me..) difference between the generated c sources:

unixware714:~/hb/harbour$ /usr/local/bin/diff -u ./hbrun.c 
./utils/hbrun/obj/unixware/gcc/hbrun.c
--- ./hbrun.c   2009-12-16 00:53:29.24007 +0100
+++ ./utils/hbrun/obj/unixware/gcc/hbrun.c  2009-12-16 00:52:07.19002 
+0100
@@ -1,7 +1,7 @@
 /*
  * Harbour 2.0.0beta3 (Rev. 13256)
  * GNU C 2.95 (32-bit)
- * Generated C source from utils/hbrun/hbrun.prg
+ * Generated C source from ../../../hbrun.prg
  */
 
 #include hbvmpub.h
@@ -156,7 +156,7 @@
 { HB_GT_PCA, {HB_FS_PUBLIC}, {HB_FUNCNAME( HB_GT_PCA )}, NULL },
 { HB_GT_STD, {HB_FS_PUBLIC}, {HB_FUNCNAME( HB_GT_STD )}, NULL },
 { (_INITSTATICS3), {HB_FS_INITEXIT | HB_FS_LOCAL}, {hb_INITSTATICS}, 
NULL }
-HB_INIT_SYMBOLS_EX_END( hb_vm_SymbolInit_HBRUN, utils/hbrun/hbrun.prg, 0x0, 
0x0002 )
+HB_INIT_SYMBOLS_EX_END( hb_vm_SymbolInit_HBRUN, ../../../hbrun.prg, 0x0, 
0x0002 )
 
 #if defined( HB_PRAGMA_STARTUP )
#pragma startup hb_vm_SymbolInit_HBRUN


yet, there is some strange (related?) difference between the c strings 
in the binaries (hbrun.ok and hbrun.bad are the outputs of `strings' on
the working and the non-working binaries, respectively):

unixware714:~/hb/harbour$ /usr/local/bin/diff -u1 hbrun.ok hbrun.bad 
--- hbrun.ok2009-12-16 01:13:37.70100 +0100
+++ hbrun.bad   2009-12-16 01:13:44.94011 +0100
@@ -8,2 +8,3 @@
 __MVSETBASE
+S_NCOL
 HB_HRBDO
@@ -35,2 +36,3 @@
 OUTSTD
+S_NROW
 ALLTRIM
@@ -66,2 +68,3 @@
 PCOUNT
+S_AINCDIR
 AADD
@@ -70,3 +73,4 @@
 _APPMAIN
-utils/hbrun/hbrun.prg
+HBRUN
+hbrun.prg
 HB_INC_INSTALL
@@ -83,2 +87,3 @@
 dd
+z1S(
 j'Harbour DOt Prompt Console / runner 

... ok, so these suspiciously look like the static variables in 
hbrun.prg (and are good account for the size difference)...

and i am lost again. if i am doing this, i have no idea how...

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org

Re: [Harbour] SF.net SVN: harbour-project:[13255] trunk/harbour

2009-12-15 Thread Tamas TEVESZ
On Wed, 16 Dec 2009, Tamas TEVESZ wrote:

hi,

  that didn't really help, and it's getting even more strange.
[...]

nevermind. all of a sudden it started working. if i did this, i have 
no idea, what did i do. i'm going to stick a screwdriver through this 
thing and go become a shepherd in new zealand.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13255] trunk/harbour

2009-12-15 Thread Tamas TEVESZ
On Wed, 16 Dec 2009, Viktor Szakáts wrote:

  I wonder why this didn't came up earlier, for one thing 
  hbmk script is unrelated to default build process, and in 
  default build process -n1 option is added by config/rules.mk. 
  This is right for libs, but not right for bins.
  
  (default build process also uses hbmk2, but it's 
  using -n1/-n2 correctly)
  
  So question is: Why is a problem now, and why wasn't 
  it so far?

i honestly have no freaking idea. i had one good build for at just 
about when przemek started adding initsegstartup, then everything went 
completely haywire for several hours (nothing that i could attribute 
to any change he made), and then suddenly it started working again.

i *am* cleaning aggressively, to the extent of:

cd `dirname $0`/harbour  rm -rf `find . -type d -name obj` lib/unixware/ 
bin/unixware/

and i have no idea why it turned upside down, nor do i know what made 
it behave well again. i did not however do blind check builds on other 
platforms.

it probably must have been a heisenbug or a hiccup in my setup (in 
fact there still is one quite strange phenomenon, but i'm still trying 
to hunt that down, before inevitably failing and crying for help:)...

  (correction is easy after that point)

in fact the build procedure still runs -n1, and now all is fine.

  
  Brgds,
  Viktor
  
  On 2009 Dec 16, at 01:37, Tamas TEVESZ wrote:
  
   On Tue, 15 Dec 2009, dru...@users.sourceforge.net wrote:
   
   hi,
   
   Revision: 13255

   http://harbour-project.svn.sourceforge.net/harbour-project/?rev=13255view=rev
   Author:   druzus
   Date: 2009-12-15 23:24:29 + (Tue, 15 Dec 2009)
   
   Log Message:
   ---
   2009-12-16 00:24 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
  * use -n2 as default harbour compiler parameter in hb* scripts
   
   that didn't really help, and it's getting even more strange.
   
   the build log clearly shows harbour still being called with -n1, i 
   checked the older ones, it was so all along the way as well.
   
   the completely strange part is that if, using the very same options, 
   copy-pasted from the build log, i build a private copy of hbrun, 
   then it works.
   
   so, the result of a make in the source tree gets me a 
   bin/$plat/$comp/hbrun which gives BASE/1003
   
   the following gives a working hbrun:
   
   unixware714:~/hb/harbour$ env | fgrep HB
   unixware714:~/hb/harbour$ gmake  ../log 21  
   
   unixware714:~/hb/harbour$ ./bin/unixware/gcc/hbrun
   Error BASE/1003  Variable does not exist: S_AINCDIR
   Called from _APPMAIN(90)   
   
   unixware714:~/hb/harbour$ ./bin/unixware/gcc/harbour utils/hbrun/hbrun.prg 
   -iinclude -n1 -q0 -w2 -es2 -kmo -i- -l  
   unixware714:~/hb/harbour$ gcc -DHB_OS_UNIXWARE -I. -Iinclude -D_SCO_DS 
   -Wall -W -O3   -o hbrun.o -c hbrun.c
   unixware714:~/hb/harbour$ gcc  -pthread -I. -Llib/unixware/gcc 
   -Iinclude -L/usr/X11R6/lib -ohbrun hbrun.o -lhbcplr -lhbpp
   -lhbcommon -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage 
   -lgtcgi -lgtpca -lgtstd -lgtcrs -lgtxwc -lgttrm -lhbrdd
   -lrddntx -lrddnsx -lrddcdx -lrddfpt -lhbsix -lhbhsx -lhbusrrdd 
   -lhbuddall -lhbrtl -lhbvm -lhbmacro -lhbcplr -lhbpp -lhbcommon
   -lhbpcre -lcurses -lX11 -lz -lsocket -lnsl -lresolv -lm
   unixware714:~/hb/harbour$ ./hbrun -- runs fine
   
   what gets me thinking is that the size difference between the two 
   files is relatively big:
   
   -rwxr-xr-x1 ice  other   3541060 Dec 16 00:54 ./hbrun  
   
   -rwxr-xr-x1 ice  other   3541592 Dec 16 00:52 
   bin/unixware/gcc/hbrun   
   
   which they proportionally keep after being stripped:
   
   -rwxr-xr-x1 ice  other   3252400 Dec 16 01:05 ./hbrun
   -rwxr-xr-x1 ice  other   3252848 Dec 16 01:05 
   bin/unixware/gcc/hbrun
   
   and even after a treat of `mcs -d': (this strips the .comment 
   sections, which the native binutils populate with the exact versions 
   of files, tools and stuff that were involved producing said elf 
   object):
   
   -rwxr-xr-x1 ice  other   3031452 Dec 16 01:05 ./hbrun
   -rwxr-xr-x1 ice  other   3031900 Dec 16 01:05 
   bin/unixware/gcc/hbrun
   
   there is no real (to me..) difference between the generated c sources:
   
   unixware714:~/hb/harbour$ /usr/local/bin/diff -u ./hbrun.c 
   ./utils/hbrun/obj/unixware/gcc/hbrun.c
   --- ./hbrun.c   2009-12-16 00:53:29.24007 +0100
   +++ ./utils/hbrun/obj/unixware/gcc/hbrun.c  2009-12-16 
   00:52:07.19002 +0100
   @@ -1,7 +1,7 @@
   /*
* Harbour 2.0.0beta3 (Rev. 13256)
* GNU C 2.95 (32-bit)
   - * Generated C source

[Harbour] g++2.95/g++3.3 bad build

2009-12-15 Thread Tamas TEVESZ

hi,

it seems that something is wrong with g++2.95 builds afterall.

i took a fresh checkout of 13263, and tried building it on an older 
linux/i386 box that has gcc 2.95.

(i changed HB_CMP to gcc-2.05 and g++-2.95 in config/linux/gcc.mk 
because this has no gcc and g++ links, but that's all that is.)

both build fine, however the g++-2.95 build does exhibit the problem 
of hbrun not being able to start because:

tres:~/tmp/h/harbour$ ./bin/linux/gcc/hbrun 

Unrecoverable error 9998: Harbour terminal (GT) initialization failure

c mode is fine. just run a quick test with gcc 3.3, same situation 
there too (same box, same everything); gcc 4.0 is ok in both modes, 
and on other boxes gcc 4.4 is ok too.

so i guess this makes it g++  4 builds broken.

full build logs of 2.95 are at http://dawn.dev.hu/~ice/tmp/g295.zip

since now i am completely confused, would someone do a test build with 
g++ 2.95 (and perhaps gcc3 too) to doublecheck me? it'd be probably 
nice to know this both on linux and some other non-unixy platform too.

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Errors under ubuntu

2009-12-14 Thread Tamas TEVESZ
On Tue, 15 Dec 2009, Viktor Szakáts wrote:

hi,

  Try exchanging line 56 with line 58 in contrib/hbqt/detect.mk 
  and report results.
  
  Even if this works I'd appreciate if someone could give 
  ideas how to make moc tool detection reliable on the long 
  run, while keeping it simple. Distros are apparently messing 
  it up badly, but maybe someone can see the big picture here 
  and there is logic in it.

the current one looks ok to me. i think angel has his moc 
configuration screwed up.

angel, what do you get (on a completely clean checkout) after you have 
had moc pointing to moc-qt4 by running `update-alternatives --config moc' 
(and obviously selecting moc-qt4)?

if i'm right, then viktor, i don't think an explicit test for moc-qt4 
is needed (unless the qt sdk itself has it so, which i do not know), 
but people need to learn their tools.

the logic is that (since one can have qt3 and qt4 dev installed 
simultaneously), one gets to decide which one does one want by 
default. you trying to work around users picking the wrong one (or 
not picking the right one) is an uphill battle, and you probably have 
better things to do ;)

  
  Brgds,
  Viktor
  
  On 2009 Dec 15, at 00:11, Angel Pais wrote:
  
   Hello All  
   
   If I'm doing nothing wrong I'm getting this errors under UBUNTU
   
   gcc   -I. -I../../../../../include -Wall -W -O3  -I/usr/include/qt4 
   -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui 
   -I/usr/include/qt4/QtNetwork  -omoc_hbqt_events.o -c moc_hbqt_events.cpp
   moc_hbqt_events.cpp:15:34: error: private/qucomextra_p.h: No existe el 
   fichero ó directorio
   moc_hbqt_events.cpp:17:2: error: #error This file was generated using 
   the moc from 3.3.8b. It
   moc_hbqt_events.cpp:18:2: error: #error cannot be used with the include 
   files from this version of Qt.
   moc_hbqt_events.cpp:19:2: error: #error (The moc has changed too much.)
   moc_hbqt_events.cpp:22: error: no ‘const char* Events::className() const’ 
   member function declared in class ‘Events’
   moc_hbqt_events.cpp:27: error: ‘QMetaObject* Events::metaObj’ is not a 
   static member of ‘class Events’
   moc_hbqt_events.cpp:28: error: ‘QMetaObjectCleanUp’ does not name a type
   moc_hbqt_events.cpp:31: error: redefinition of ‘static QString 
   Events::tr(const char*, const char*)’
   ../../../hbqt_events.h:68: error: ‘static QString Events::tr(const char*, 
   const char*)’ previously defined here
   moc_hbqt_events.cpp:39: error: redefinition of ‘static QString 
   Events::trUtf8(const char*, const char*)’
   ../../../hbqt_events.h:68: error: ‘static QString Events::trUtf8(const 
   char*, const char*)’ previously defined here
   moc_hbqt_events.cpp:50: error: no ‘QMetaObject* 
   Events::staticMetaObject()’ member function declared in class ‘Events’
   moc_hbqt_events.cpp:68: error: no ‘void* Events::qt_cast(const char*)’ 
   member function declared in class ‘Events’
   moc_hbqt_events.cpp:75: error: ‘QUObject’ has not been declared
   moc_hbqt_events.cpp:75: error: no ‘bool Events::qt_invoke(int, int*)’ 
   member function declared in class ‘Events’
   moc_hbqt_events.cpp:80: error: ‘QUObject’ has not been declared
   moc_hbqt_events.cpp:80: error: no ‘bool Events::qt_emit(int, int*)’ 
   member function declared in class ‘Events’
   moc_hbqt_events.cpp:86: error: no ‘bool Events::qt_property(int, int, 
   QVariant*)’ member function declared in class ‘Events’
   moc_hbqt_events.cpp:91: error: no ‘bool 
   Events::qt_static_property(QObject*, int, int, QVariant*)’ member 
   function declared in class ‘Events’
   
   make[3]: *** [moc_hbqt_events.o] Error 1
   make[2]: *** [descend] Error 2
   make[1]: *** [hbqt] Error 2
   make: *** [contrib] Error 2
   
   HTH
   
   Angel
   
   ___
   Harbour mailing list (attachment size limit: 40KB)
   Harbour@harbour-project.org
   http://lists.harbour-project.org/mailman/listinfo/harbour
  
  ___
  Harbour mailing list (attachment size limit: 40KB)
  Harbour@harbour-project.org
  http://lists.harbour-project.org/mailman/listinfo/harbour
  

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Errors under ubuntu

2009-12-14 Thread Tamas TEVESZ
On Tue, 15 Dec 2009, Viktor Szakáts wrote:

hi,

   the logic is that (since one can have qt3 and qt4 dev installed 
   simultaneously), one gets to decide which one does one want by 
   default. you trying to work around users picking the wrong one (or 
   not picking the right one) is an uphill battle, and you probably have 
   better things to do ;)
  
  Makes perfect sense, and I'd be more than willing to 
  delete check for moc-qt4 (which would need to be updated 
  after each major QT release...), but this leads us back 
  to the starting point: the reason I added moc-qt4 check 
  was this messages:

   From: Bisz István istvan.b...@t-online.hu
   Date: 2009 November 19 17:30:41 CET
   To: 'Harbour Project Main Developer List.' harbour@harbour-project.org
   Subject: RE: [Harbour] SF.net SVN: harbour-project:[12938] trunk/harbour
   Reply-To: Harbour Project Main Developer List. 
   harbour@harbour-project.org
   
   Thanks, finally I can locate it: /usr/bin/moc-q4 is the executable.
   I am in dialog with me, sorry...
   
   Thanks, finally I can locate it: /usr/bin/moc-qt4 is the executable. We 
   should change moc to moc-qt4 for Fedora.

well, i am not a fedora person, but a quick google session came up 
with this:

http://www.linux-archive.org/fedora-packaging/114031-moc-moc-qt4.html

a quick look at f12's qt spec shows that this is probably still the 
case, so in the end i don't really know. fedora people would most 
likely appreciate it keeping so, on the other hand i can't help but 
wonder when will they actually stop shipping tar, and start shipping 
only tar-1.22 instead... i've always thought you can't get any more 
retarded than debian, but oh well...


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] porting help needed again

2009-12-14 Thread Tamas TEVESZ

hi,

got this:

g++   -DHB_OS_UNIXWARE -I. -I../../../../../include -D_SCO_DS -Wall -W -O3   -o 
expropt1.o -c ../../../expropt1.c
In file included from ../../../../../include/hbvmpub.h:56,
 from ../../../../../include/hbapi.h:61,
 from ../../../../../include/hbcompdf.h:57,
 from ../../../../../include/hbmacro.h:62,
 from ../../../expropt1.c:58:
../../../../../include/hbdefs.h:1624: multiple storage classes in declaration 
of `PHB_FUNC'
../../../../../include/hbdefs.h:1625: multiple storage classes in declaration 
of `HB_FUNC_PTR'
../../../expropt1.c: In function `struct HB_EXPR_ * 
hb_compExprNewNegate(HB_EXPR_ *, _HB_COMMON *)':
../../../expropt1.c:1066: integer constant out of range
gmake[3]: *** [expropt1.o] Error 1

happens only with g++ (2.95), not with gcc or the native c/c++ 
compiler.

now i know i've seen this before, but in a momentary lapse of sanity 
that's been going on for several days now i can't for the life of me 
recall or figure out where where to attack this.

bring the cluesticks!

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] gcc2

2009-12-13 Thread Tamas TEVESZ

hi,

would someone with gcc2 handy get me the output of

gcc -dM -E -xc /dev/null

please? (whatever /dev/null is on your platform; running it on an 
empty file is good, too.)

please indicate what platform you are on.

i am not at the moment interested in any other gcc version, only v2.

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] enhance hbsocket.c portability

2009-12-12 Thread Tamas TEVESZ

hi,

these two are quite synonymous (so maybe extending the patch to 
include the reverse case could be useful later on as well).

Index: src/rtl/hbsocket.c
===
--- src/rtl/hbsocket.c  (revision 13223)
+++ src/rtl/hbsocket.c  (working copy)
@@ -220,6 +220,10 @@
 #  define SHUT_RDWR 2
 #endif
 
+#if !defined( IPV6_JOIN_GROUP )  defined( IPV6_ADD_MEMBERSHIP )
+#   define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
+#endif
+
 #if defined( __WATCOMC__ )  defined( HB_OS_LINUX )  !defined( 
IP_ADD_MEMBERSHIP )
/* it's missed in OpenWatcom 1.8 Linux header files :-( */
 #  define IP_ADD_MEMBERSHIP   35

-- 
[-]

mkdir /nonexistentIndex: src/rtl/hbsocket.c
===
--- src/rtl/hbsocket.c	(revision 13223)
+++ src/rtl/hbsocket.c	(working copy)
@@ -220,6 +220,10 @@
 #  define SHUT_RDWR 2
 #endif
 
+#if !defined( IPV6_JOIN_GROUP )  defined( IPV6_ADD_MEMBERSHIP )
+#   define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
+#endif
+
 #if defined( __WATCOMC__ )  defined( HB_OS_LINUX )  !defined( IP_ADD_MEMBERSHIP )
/* it's missed in OpenWatcom 1.8 Linux header files :-( */
 #  define IP_ADD_MEMBERSHIP   35
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] argmax again

2009-12-12 Thread Tamas TEVESZ

hi,

i have hit a case where the libharbour.so linking phase generates a 
command line of about 33k, while this system's limit is about 10k.

i reckon this is the first unix we've hit this on, accordingly i can't 
really find anything to follow.

i think that on other limited systems the linker can be fed from a 
file containing the objects to link, but there's nothing of the sorts 
i find here.

cluestick, please?

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] hbver.c:iVerMinor and szSub

2009-12-12 Thread Tamas TEVESZ

hi,

could i please have the implicit short intness of iverpatch (
hb_snprintf( pszCompiler, COMPILER_BUF_SIZE, %s%s %hd.%hd.%hd, pszName, 
szSub, iVerMajor, iVerMinor, iVerPatch );
) lifted, and szSub extended by a few octets?

i'm massaging a compiler that encodes MM in the patch level, and 
the canonical version string rather needs a shoehorn fitting in 32 
octets.

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hbver.c:iVerMinor and szSub

2009-12-12 Thread Tamas TEVESZ

(subject should have read iVerPatch of course)

  could i please have the implicit short intness of iverpatch (
  hb_snprintf( pszCompiler, COMPILER_BUF_SIZE, %s%s %hd.%hd.%hd, pszName, 
  szSub, iVerMajor, iVerMinor, iVerPatch );
  ) lifted, and szSub extended by a few octets?
  
  i'm massaging a compiler that encodes MM in the patch level, and 
  the canonical version string rather needs a shoehorn fitting in 32 
  octets.
  
  thanks,
  
  

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13174] trunk/harbour

2009-12-09 Thread Tamas TEVESZ
On Wed, 9 Dec 2009, Tamas TEVESZ wrote:

  ! HB_USER_CFLAGS: -DHB_STATIC_STARTUP

i am so shutting up right about now.

i forgot this in from a previous experiment ;(

sorry for the noise.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13154] trunk/harbour

2009-12-07 Thread Tamas TEVESZ
On Mon, 7 Dec 2009, dru...@users.sourceforge.net wrote:

hi,

  Revision: 13154

* harbour/src/rdd/dbfcdx/dbfcdx1.c
  * modified to use unique names for startup functions

yup, much better now, all artifacts seem to have disappeared, thanks!


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hbtpathy/tpunix question

2009-12-06 Thread Tamas TEVESZ
On Sun, 6 Dec 2009, Viktor Szakáts wrote:

  I'm leaving this to you as it obviously has no point for 
  me to update it while I don't understand a single bit about it.
  
  I can restore original state but that won't help on the 
  original problem.

here's the deal in condensed form: CRTSCTS is system-dependendant. 
most every system could have it, but some don't. right now, the only 
one that doesn't have it is the watcom runtime on linux, but as we 
know what CRTSCTS is on linux (by way of extracting it from libc), we 
know how to make watcom define it to the correct value.

the modifications przemek proposed makes the code reflect this line of 
thinking (so that probably noone will make the same mistake i made 
thinking there's no point for extra guards), and if one ever 
encounters another platform without CRTSCTS, he sees that

- he either needs to come up with a value for CRTSCTS by some means 
  (platform-specific tricks, experiments, crystal ball), or
- we'll completely skip the code path that depepnds on a known CRTSCTS 
  (and generate a warning to signal that there is something that you 
  should probably fix up for full user experience)

the specific cases przemek cited were just to show that the 
actual value is system-dependant, not because they needed to be put in 
the code, as those systems are fine enough to indicate the needed 
values by themselves.

this seems to be what przemek is getting to. it's essentially the same 
in effect that was in before, but is hopefully way more verbose in 
telling why it's there.

Index: tpunix.c
===
--- tpunix.c(revision 13140)
+++ tpunix.c(working copy)
@@ -267,22 +267,18 @@
   hb_retl( FALSE );
 }
 
-#if ! defined( CRTSCTS )
-   #if   defined( HB_OS_LINUX ) ||
- defined( HB_OS_SUNOS )
-  #define CRTSCTS0x8000
-   #elif defined( HB_OS_BSD )
-  #define CRTSCTS0x0001
-   #elif defined( HB_OS_BEOS )
-  #define CRTSCTS0x6000
-   #elif defined( HB_OS_DARWIN )
-  #define CRTSCTS0x0003
-   #endif
+#if !defined( CRTSCTS )
+#   if defined( HB_OS_LINUX )  defined( __WATCOMC__ )  __WATCOMC__  1290
+#  define CRTSCTS 0200
+#   endif
 #endif
 
 HB_FUNC( __TP_CTRLCTS )
 {
-#if defined( CRTSCTS )
+#if !defined( CRTSCTS )
+   int iTODO;
+   hb_retni( 0 );
+#else
struct termios options;
int port = hb_parnl( 1 );
int newvalue = hb_pcount() == 2 ? hb_parnl( 2 ) : -1;
@@ -301,9 +297,6 @@
   rc = tcsetattr( port, TCSAFLUSH, options );
 
hb_retni( curvalue ? 1 : 0 );
-#else
-   int iTODO;
-   hb_retni( 0 );
 #endif
 }

as i see it, the essential difference is as follows:

#if !defined( CRTSCTS )  defined( __WATCOMC__ )
#  define CRTSCTS 0200
#endif

what this tells is crtscts might not be defined on linux/watcom, so 
here's what it should be.

#if !defined( CRTSCTS )
#   if defined( HB_OS_LINUX )  defined( __WATCOMC__ )  __WATCOMC__  1290
#  define CRTSCTS 0200
#   endif
#endif

what this tells is crtscts might not be defined. we know one such 
case is this older versions of watcom on linux, where crtscts should 
be this..

while the end result is quite the same, it makes whoever is reading 
think in a different way, which is actually needed here, as przemek 
helpfully explained.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] HB_STRICT_ANSI_C, does it work?

2009-12-06 Thread Tamas TEVESZ

hi,

i've been toying with a platform where (due to compiler, erhm, issues) 
my best bet for startup seems to be hb_strict_ansi_c, however it 
doesn't seen to work. i've checked setting this on linux/gcc, and it 
doesn't work either.

even compilation doesn't succeed by throwing lots of multiply defined 
symbol and other suspicions (read, they aren't there in other 
cases) errors along the lines of:

gcc   -I. -I../../../../../../include -DHB_STRICT_ANSI_C -Wall -W -O3  
  -I/usr/include  -ogtxwc.o -c ../../../gtxwc.c
  ../../../gtxwc.c:4306: warning: return type defaults to ‘int’
  ../../../gtxwc.c: In function ‘_hb_startup_gt_Init_’:
  ../../../gtxwc.c:4308: warning: control reaches end of non-void function

gcc  -shared [...] -o ../../../../../lib/linux/gcc/libharbour-2.0.0.so [...]
  gtxwc.c:(.text+0x2f0): multiple definition of `_hb_startup_gt_Init_'
  ../../../../../src/rtl/gtcgi/obj/linux/gcc/gtcgi_dyn.o:gtcgi.c:(.text+0x230): 
first defined here
collect2: ld returned 1 exit status

these are present in gt drivers, also rdds and the code page stuff.

if the linker is convinced (by judicious application of -z muldefs) to 
just do something, it's not very surprisingly doesn't work either:

tinky:~/w/xhb/hbci/harbour-build$ ./bin/linux/gcc/hbrun 

Unrecoverable error 9998: Harbour terminal (GT) initialization failure

hence the question, does HB_STRICT_ANSI_C work? how does it work? when 
does it work?

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13149] trunk/harbour

2009-12-06 Thread Tamas TEVESZ
On Mon, 7 Dec 2009, vszak...@users.sourceforge.net wrote:

hi,

[libpng]
  * Updated to 1.2.41 (from 1.2.40)

broke linux x win/watcom cpp

! Building Harbour 2.0.0beta3 from source - http://www.harbour-project.org
! MAKE: make 3.81 /bin/sh   
! HB_INSTALL_PREFIX: /home/ice/w/xhb/hbci/inst/win/watcom/cpp
! HB_BUILD_DEBUG: yes
! HB_BUILD_OPTIM: no
! HB_BUILD_MODE: cpp
! HB_BUILD_EXTDEF: no
! HB_CONTRIBLIBS: no
! HB_HOST_PLAT: linux (x86_64)  HB_SHELL: sh
! HB_PLATFORM: win (x86) 
! HB_COMPILER: watcom 
! HB_BIN_COMPILE not specified. Automatically set to: /usr/bin
! Component: 'zlib' found in /home/ice/w/xhb/hbci/harbour-build/external/zlib 
(local)
! Component: 'pcre' found in /home/ice/w/xhb/hbci/harbour-build/external/pcre 
(local)
! Component: 'openssl' not supported with watcom compiler
! Component: 'gpm' not supported on win platform
! Component: 'slang' not found
! Component: 'curses' not found
! Component: 'x11' not found
! Component: 'wattcp/watt-32' not supported on win platform
! REVISION: 13150
make[2]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
! 'libhpdf' library skipped (platform or compiler not supported)
wcc386   -zq -bt=nt -bm -w0 -3s -i. -i../../../../../include -d2 
-DHB_TR_LEVEL_DEBUG  -I/home/ice/w/xhb/hbci/harbour-build/external/zlib  
-fo=png.obj  ../../../png.c
wcc386   -zq -bt=nt -bm -w0 -3s -i. -i../../../../../include -d2 
-DHB_TR_LEVEL_DEBUG  -I/home/ice/w/xhb/hbci/harbour-build/external/zlib  
-fo=pngerror.obj  ../../../pngerror.c
wcc386   -zq -bt=nt -bm -w0 -3s -i. -i../../../../../include -d2 
-DHB_TR_LEVEL_DEBUG  -I/home/ice/w/xhb/hbci/harbour-build/external/zlib  
-fo=pnggccrd.obj  ../../../pnggccrd.c
wcc386   -zq -bt=nt -bm -w0 -3s -i. -i../../../../../include -d2 
-DHB_TR_LEVEL_DEBUG  -I/home/ice/w/xhb/hbci/harbour-build/external/zlib  
-fo=pngget.obj  ../../../pngget.c
wcc386   -zq -bt=nt -bm -w0 -3s -i. -i../../../../../include -d2 
-DHB_TR_LEVEL_DEBUG  -I/home/ice/w/xhb/hbci/harbour-build/external/zlib  
-fo=pngmem.obj  ../../../pngmem.c
../../../pngmem.c(447): Error! E1057: Modifiers disagree with previous 
definition of 'png_calloc'
../../../pngmem.c(447): Note! I2002: 'png_calloc' defined in: 
../../../png.h(3754)
make[3]: *** [pngmem.obj] Error 1
make[2]: *** [descend] Error 2
make[1]: *** [libpng] Error 2
make: *** [external] Error 2

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13103] trunk/harbour

2009-12-05 Thread Tamas TEVESZ
On Sat, 5 Dec 2009, Viktor Szakáts wrote:

  continues about the mingw project. First they use .lzma 
  extension instead of well-known .7z. Fine. Then they insist 

they are by far not the same. .lzma to .7z is what .gz is to .zip,

  on using .tar inside the .7z file, which is a solid archive 
  anyway, so .tar doesn't give any size advantages. Then they

hence the need for a container, which they chose to be tar (probably 
because 7z can't, or they thought it can't store attributes they 
needed) (it probably can).

  insist on using *nix links inside the .tar meant for 
  the Windows platform which doesn't have support for such 
  links.

technically, it does, has had for quite some time.

practically, if i had to pick between using these features of ntfs and 
the cheese greeter, i'd probably pick the cheese greeter.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] hbtpathy/tpunix question

2009-12-05 Thread Tamas TEVESZ

hi,

contrib/hbtpathy/tpunix.c:

270 HB_FUNC( __TP_CTRLCTS )
271 {
272 #if !defined( CRTSCTS )  defined( __WATCOMC__ )
273 #  define CRTSCTS 0200
274 #endif

is there a reason for the  defined( __WATCOMC__ ) part? i've just 
found another platform where CRTSCTS isn't defined, and am wondering 
whether anyone has anything against, or a better idea instead of, just 
dropping the watcom constraint from this conditional.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13103] trunk/harbour

2009-12-05 Thread Tamas TEVESZ
On Sat, 5 Dec 2009, Viktor Szakáts wrote:

   hence the need for a container, which they chose to be tar (probably 
   because 7z can't, or they thought it can't store attributes they 
   needed) (it probably can).
  
  It's still an insane idea. Even .tar.gz is insane on Windows.

i have never for one split second argued against this very true 
statement :)

   practically, if i had to pick between using these features of ntfs and 
   the cheese greeter, i'd probably pick the cheese greeter.
  
  Hm, what is a cheese greeter? :o

that's what cheese grater becomes when i'm simultaneously trying to 
type cheese grater and saying gdmgreeter out loud :)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hbtpathy/tpunix question

2009-12-05 Thread Tamas TEVESZ
On Sat, 5 Dec 2009, Viktor Szakáts wrote:

   270 HB_FUNC( __TP_CTRLCTS )
   271 {
   272 #if !defined( CRTSCTS )  defined( __WATCOMC__ )
   273 #  define CRTSCTS 0200
   274 #endif
   
   is there a reason for the  defined( __WATCOMC__ ) part? i've just 
   found another platform where CRTSCTS isn't defined, and am wondering 
   whether anyone has anything against, or a better idea instead of, just 
   dropping the watcom constraint from this conditional.
  
  Probably can be dropped. More could be told by checking 
  file history, maybe you can spot who added it and with 
  what comment.

it says:

2008-07-17 03:36 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
  * harbour/contrib/hbtpathy/tplinux.c
* workaround for missing CRTCTS declaration in OpenWatcom

so i guess no harm dropping it.

thanks,

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13083] trunk/harbour

2009-12-01 Thread Tamas TEVESZ
On Tue, 1 Dec 2009, vszak...@users.sourceforge.net wrote:

  Log Message:
  ---
  2009-12-01 12:21 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* config/global.mk
  % De-xmastree-d two more if/else structures.

you SO are my hero.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hbide

2009-11-29 Thread Tamas TEVESZ
On Mon, 30 Nov 2009, Davor Siklic wrote:

  s...@siki:~/clipp/harbour/contrib/hbide$ hbmk2 hbide

hbmk2 hbide.hbp


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[12970] trunk/harbour

2009-11-26 Thread Tamas TEVESZ
On Thu, 26 Nov 2009, Przemysław Czerpak wrote:

hi,

  I've just committed it:
  
  2009-11-26 03:45 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

a typo seems to have snuck in.

Index: src/vm/hvm.c
===
--- src/vm/hvm.c(revision 13028)
+++ src/vm/hvm.c(working copy)
@@ -11401,7 +11401,7 @@
 
 void hb_vmUpdateAllocator( PHB_ALLOCUPDT_FUNC pFunc, int iCount )
 {
-   HB_TRACE(HB_TR_DEBUG, (hb_vmUpdateAllocator(%p, %d), pFunc, int iCount));
+   HB_TRACE(HB_TR_DEBUG, (hb_vmUpdateAllocator(%p, %d), pFunc, iCount));
 
 #if defined( HB_MT_VM )
if( s_vmStackLst )



-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[12972] trunk/harbour

2009-11-23 Thread Tamas TEVESZ
On Mon, 23 Nov 2009, Przemysław Czerpak wrote:

   that is exactly what's happening, and according to llvm bugzilla, this 
   is what should be happening, see:
   http://www.mail-archive.com/llvmb...@cs.uiuc.edu/msg03238.html
  
  Please note that we are calling llvm-gcc to link final application
  and it does not work. I haven't check if it does not call llvm-ld
  but native ld or llvm-ld does not work correctly. It doesn't matter
  for us. Important is only that calling llvm-gcc to create binaries
  does not work with libraries created by llvm-ar what is a problem
  which should be resolved by packager or llvm authors. It's not
  out job to add workarounds for such things into core harbour code.
  
   so it may be that the solution is not HB_CCPREFIX after all, but a 
   separate llvmgcc target, which, for starters, only sets HB_CMP.
  
  I still to think that it's good idea to encode workarounds for problems
  with other packages into harbour core code. IMHO much simpler temporary
  solution is:
 ln -sf /usr/bin/ar /usr/bin/llvm/ar
  from root account until someone will have not create llvm-gcc packages with
  llvm-gcc which can work with llvm-ar correctly.

they work together correctly, if they are configured to work together 
correctly. my first stab, they were not. i'm much further now, and 
almost have a complete compilation+link cycle without workarounds like 
above (as i slowly start to understand how llvm + frontends work).

   it seems that the supposed improvements using llvm start pouring when 
   it's also used for linking, see for example:
   http://www.nntp.perl.org/group/perl.perl5.porters/2008/06/msg137461.html
   this could be added as a next step, once an llvmgcc target is in 
   there.
  
  It will not give any real improvement to Harbour HVM because we already
  enabled inter procedural optimization in whole HVM code by introducing
  hvmall.c so it works for compiler which do not have link time IPO. Few
  months ago I tested using ICC that it gives in practice the same
  improvement and introducing link time IPO does give farther speed
  optimizations but strongly increase the size of final binaries.
  So if LLVM/GCC does not disable some compile time IPO which exist in GCC
  then at current state there is not chance that using LLVM or CLANG we will
  have faster final code because we do not leave any time critical code
  which can be improved yet by link time IPO.

i wholeheartedly believe you, but i still do not see this as a futile 
excercise. if nothing else, *i* will learn something new.

   HB_CCPREFIX seems absolutely not the way to go.
  
  Can you explain the above. I do not understand it.

i do not really understand what is it you do not understand. 
HB_CCPREFIX is just that, prepending some prefix to the compiler and 
binutils and stuff names. in this llvmgcc case, modifying several 
compiler options is also needed, so setting only prefix is not enough.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] llvm ident fixup

2009-11-22 Thread Tamas TEVESZ
On Sun, 22 Nov 2009, Viktor Szakáts wrote:

hi,

  I'll commit something pretty soon, pls 
  take a look at it.

it gives the expected results with llvm/g{cc,++}, thanks.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[12972] trunk/harbour

2009-11-22 Thread Tamas TEVESZ
On Sun, 22 Nov 2009, Viktor Szakáts wrote:

   could you also add this (llvm-gcc) target to the mix? for all intents 
   and purposes, it is the very same as the gcc target, except compilers 
   being llvm-gcc and llvm-g++ instead of gcc and g++, respectively.
  
  Can you try if it works by setting HB_CCPREFIX=llvm- 
  and using gcc target? If this seems ok, I may add it, 

no, it doesn't:

HB_BUILD_DEBUG=yes
HB_CONTRIBLIBS=no
HB_COMMERCE=yes
HB_INSTALL_PREFIX=/home/ice/w/xhb/hbci/inst/linux/gcc/c
HB_COMPILER=gcc
HB_BUILD_MODE=c
HB_BUILD_OPTIM=no
HB_PLATFORM=linux
HB_CCPREFIX=llvm-
===
! Building Harbour 2.0.0beta3 from source - http://www.harbour-project.org
! MAKE: make 3.81 /bin/sh   
! HB_INSTALL_PREFIX: /home/ice/w/xhb/hbci/inst/linux/gcc/c
! HB_BUILD_DEBUG: yes
! HB_BUILD_OPTIM: no
! HB_BUILD_MODE: c
! HB_CONTRIBLIBS: no
! HB_HOST_PLAT: linux (x86_64)  HB_SHELL: sh
! HB_PLATFORM: linux (x86_64) 
! HB_COMPILER: gcc 
! Component: 'zlib' found in /usr/include 
! Component: 'pcre' found in /usr/include 
! Component: 'openssl' found in /usr/include 
! Component: 'gpm' explicitly disabled
! Component: 'slang' explicitly disabled
! Component: 'curses' found in /usr/include 
! Component: 'x11' found in /usr/include 
! Component: 'wattcp/watt-32' not supported on linux platform
! REVISION: 12974
make[2]: Nothing to be done for `all'.
make[1]: Nothing to be done for `all'.
llvm-gcc  -I. -I../../../../../include  -g -DHB_TR_LEVEL_DEBUG  -I/usr/include 
-I/usr/include  -o_hbhbpdf.o -c ../../../_hbhbpdf.c
[...]
llvm-gcc  -I. -I../../../../../include  -Wall -W -g -DHB_TR_LEVEL_DEBUG   
-ostrwild_dyn.o -DHB_DYNLIB -fpic -c ../../../strwild.c
( llvm-ar   rcs ../../../../../lib/linux/gcc/libhbcommon.a expropt1.o 
expropt2.o hbffind.o hbfopen.o hbfsapi.o hbgete.o hbwince.o hbhash.o hbprintf.o 
hbstr.o hbdate.o hbmem.o hbtrace.o hbver.o hbverdsp.o hbarch.o reserved.o 
strwild.o  ) || ( rm -f ../../../../../lib/linux/gcc/libhbcommon.a  false )
llvm-gcc  -I. -I../../../../../include  -Wall -W -g -DHB_TR_LEVEL_DEBUG   
-onortl.o -c ../../../nortl.c
( llvm-ar   rcs ../../../../../lib/linux/gcc/libhbnortl.a nortl.o  ) || ( rm -f 
../../../../../lib/linux/gcc/libhbnortl.a  false )
llvm-gcc  -I. -I../../../../../include  -Wall -W -g -DHB_TR_LEVEL_DEBUG   
-ohbpp.o -c ../../../hbpp.c
llvm-gcc  -I. -I../../../../../include  -Wall -W -g -DHB_TR_LEVEL_DEBUG   
-ohbpp_dyn.o -DHB_DYNLIB -fpic -c ../../../hbpp.c
llvm-gcc  -Wall -W -g  -L../../../../../lib/linux/gcc   
-o../../../../../bin/linux/gcc/hbpp hbpp.o -lhbnortl -lhbcommon -lm 
../../../../../lib/linux/gcc/libhbnortl.a: could not read symbols: Archive has 
no index; run ranlib to add one
collect2: ld returned 1 exit status
make[3]: *** [hbpp] Error 1
rm hbpp.o
make[2]: *** [descend] Error 2
make[1]: *** [pp] Error 2
make: *** [src] Error 2

but using this:

--- gcc.mk  2009-11-22 14:00:24.0 +0100
+++ llvm-gcc.mk 2009-11-22 14:03:30.0 +0100
@@ -3,9 +3,9 @@
 #
 
 ifeq ($(HB_BUILD_MODE),cpp)
-   HB_CMP := g++
+   HB_CMP := llvm-g++
 else
-   HB_CMP := gcc
+   HB_CMP := llvm-gcc
 endif
 
 OBJ_EXT := .o

it does (HB_COMPILER=llvm-gcc). i have no idea what the essential 
difference is, but this way it does, HB_CCPREFIX way it doesn't. i've 
also modified postinst.sh like

Index: postinst.sh
===
--- postinst.sh (revision 12974)
+++ postinst.sh (working copy)
@@ -49,7 +49,8 @@
[ $HB_COMPILER = cygwin ] || \
[ $HB_COMPILER = djgpp ] || \
[ $HB_COMPILER = icc ] || \
-   [ $HB_COMPILER = sunpro ]
+   [ $HB_COMPILER = sunpro ] || \
+   [ $HB_COMPILER = llvm-gcc ]
 then
 if [ -n ${HB_TOOLS_PREF} ]; then
 
hb_mkdyn=${HB_INST_PKGPREF}${HB_BIN_INSTALL}/${HB_TOOLS_PREF}-mkdyn

this, and the installed tree seems mostly ok (what not ok is the 
dynlib link generation, which is probably due to hb-mkdyn.sh also in 
need of some massaging).

full build logs of both cases are available if needed (my build tests 
only do hb core, ie. no contribs or anything).

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[12972] trunk/harbour

2009-11-22 Thread Tamas TEVESZ
On Sun, 22 Nov 2009, Przemysław Czerpak wrote:

hi,

   HB_COMPILER=gcc
   HB_BUILD_OPTIM=no
  
  Why do you disable optimization?

i don't know, i forgot already. the original intent was probably that 
probably noone else builds with optimizations disabled, so at least my 
tests should have a case for it.

  You have quite precise error message here.
  I've just checked that also in Suse11.2 llvm-ranlib does not create index
  which can be recognized by llvm-gcc. It's probably bug which should be
  reported to LLVM developers.
  As workaround I used ranlib instead of llvm-ranlib to create indexes and
  created full harbour build using HB_CCPREFIX=llvm- without any problems.

that is exactly what's happening, and according to llvm bugzilla, this 
is what should be happening, see:

http://www.mail-archive.com/llvmb...@cs.uiuc.edu/msg03238.html

  The difference is that such version used 'ar' instead of 'llvm-ar'
  which created working library indexes.
  Probably as dirty hack you can try to replace 'llvm-ar' with link to 'ar'
  and HB_CCPREFIX will work for you without any problems.

so it may be that the solution is not HB_CCPREFIX after all, but a 
separate llvmgcc target, which, for starters, only sets HB_CMP.

it seems that the supposed improvements using llvm start pouring when 
it's also used for linking, see for example:

http://www.nntp.perl.org/group/perl.perl5.porters/2008/06/msg137461.html

this could be added as a next step, once an llvmgcc target is in 
there. HB_CCPREFIX seems absolutely not the way to go.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[12972] trunk/harbour

2009-11-22 Thread Tamas TEVESZ


  separate llvmgcc target, which, for starters, only sets HB_CMP.

i'm fighting with the attached llvmgcc target definition, but i got 
stuck, and can't ffigure out where do cflags leak into ldflags. just 
try building it, you'll see.

cluebat, please?

-- 
[-]

mkdir /nonexistent#
# $Id: gcc.mk 12895 2009-11-16 08:52:59Z vszakats $
#

ifeq ($(HB_BUILD_MODE),cpp)
   HB_CMP := llvm-g++
else
   HB_CMP := llvm-gcc
endif

OBJ_EXT := .o
LIB_PREF := lib
LIB_EXT := .a

HB_DYN_COPT := -DHB_DYNLIB -fpic

CC := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX)
CC_IN := -c
CC_OUT := -o

CPPFLAGS := -I. -I$(HB_INC_COMPILE)
CFLAGS := -emit-llvm
LDFLAGS := -native

ifneq ($(HB_BUILD_WARN),no)
   CFLAGS += -Wall -W
endif

ifneq ($(HB_BUILD_OPTIM),no)
   CFLAGS += -O3
endif

ifeq ($(HB_BUILD_DEBUG),yes)
   CFLAGS += -g
endif

ifneq ($(filter $(HB_BUILD_STRIP),all lib),)
   ARSTRIP =  strip -S $(LIB_DIR)/$@
endif
ifneq ($(filter $(HB_BUILD_STRIP),all bin),)
   LDSTRIP := -s
   DYSTRIP := -s
endif

# LD := $(HB_CCACHE) $(HB_CCPREFIX)$(HB_CMP)$(HB_CCPOSTFIX)
LD := llvm-ld
LD_OUT := -o$(subst x,x, )

LIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS),-L$(dir))
LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS),-l$(lib))

LDFLAGS += $(LIBPATHS)

AR := llvm-ar
ARFLAGS :=
AR_RULE = ( $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F) 
$(ARSTRIP) ) || ( $(RM) $(LIB_DIR)/$@  false )

DY := $(CC)
DFLAGS := -shared $(LIBPATHS)
DY_OUT := -o$(subst x,x, )
DLIBS := $(foreach lib,$(HB_USER_LIBS) $(SYSLIBS),-l$(lib))

DY_RULE = $(DY) $(DFLAGS) $(HB_USER_DFLAGS) $(DY_OUT)$(DYN_DIR)/$@ $^ $(DLIBS) 
$(DYSTRIP)  $(LN) $(@F) $(DYN_FILE2)

include $(TOP)$(ROOT)config/rules.mk
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[12972] trunk/harbour

2009-11-22 Thread Tamas TEVESZ
On Mon, 23 Nov 2009, Viktor Szakáts wrote:

   i'm fighting with the attached llvmgcc target definition, but i got 
   stuck, and can't ffigure out where do cflags leak into ldflags. just 
   try building it, you'll see.
   cluebat, please?
  
  For some reason CPPFLAGS is passed to linker 
  (while CFLAGS isn't). This is so since the beginning, 
  and no one has touched this remaining strangeness yet.

it's actually CFLAGS, and is in rules.mk:66

is there any ill effect were it to be removed? i'm in a sort of a 
hurry now, but without this, at least linux/gcc, linux/g++, 
linux/sunpro and linux x os2/watcom c++ is still ok, whereas llvmgcc 
definitely gets further on (and now blows up in what at cursory 
eyeballing seems to be hb-mkdyn, which is understandable).

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] llvm ident fixup

2009-11-21 Thread Tamas TEVESZ

viktor,

i believe the following is better at identifying the actual llvm 
frontend used:

tinky:~/w/xhb/hbci/harbour-build$ ../inst/linux/llvm/c/bin/harbour -build 21 
| fgrep Compiler
Compiler: LLVM/GNU C 4.2.1 (64-bit)
tinky:~/w/xhb/hbci/harbour-build$ ../inst/linux/llvm/cpp/bin/harbour -build 
21 | fgrep Compiler
Compiler: LLVM/GNU C++ 4.2.1 (64-bit)

without this, llvm/gcc gets identified as gcc.

i don't have clang, but if that doesn't break for you, could you 
please apply this?

thanks,

Index: src/common/hbver.c
===
--- src/common/hbver.c  (revision 12965)
+++ src/common/hbver.c  (working copy)
@@ -623,11 +623,11 @@
   pszName = EMX/RSXNT/Win32 GNU C;
#elif defined( __EMX__ )
   pszName = EMX GNU C;
-   #elif defined( __clang__ )
-  #if defined( __llvm__ )
- pszName = Clang/LLVM C;
+   #elif defined( __llvm__ )
+  #if defined( __clang__ )
+ pszName = LLVM/Clang  C;
   #else
- pszName = Clang/GNU C;
+ pszName = LLVM/GNU C;
   #endif
#else
   pszName = GNU C;


-- 
[-]

mkdir /nonexistentIndex: src/common/hbver.c
===
--- src/common/hbver.c	(revision 12965)
+++ src/common/hbver.c	(working copy)
@@ -623,11 +623,11 @@
   pszName = EMX/RSXNT/Win32 GNU C;
#elif defined( __EMX__ )
   pszName = EMX GNU C;
-   #elif defined( __clang__ )
-  #if defined( __llvm__ )
- pszName = Clang/LLVM C;
+   #elif defined( __llvm__ )
+  #if defined( __clang__ )
+ pszName = LLVM/Clang  C;
   #else
- pszName = Clang/GNU C;
+ pszName = LLVM/GNU C;
   #endif
#else
   pszName = GNU C;
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


RE: [Harbour] SF.net SVN: harbour-project:[12943] trunk/harbour

2009-11-19 Thread Tamas TEVESZ
On Fri, 20 Nov 2009, Bisz István wrote:


  ../../../dlmalloc.c: In function 'void* dlmalloc(size_t)':
  ../../../dlmalloc.c:4107: warning: dereferencing pointer 'b' does break 
  strict-aliasing rules

there is an updated dlmalloc available from 
ftp://gee.cs.oswego.edu/pub/misc/ (2.8.4 as opposed to the in-tree 
2.8.3, with a good 3.5yrs between them). my quick build tests show 
that neither watcom nor mingw (4.2.1 here) like it as-is, but to my 
untrained eye they don't look too difficult (from a cursory look it 
looks like they have something to do with mmap, to which end the 
in-tree version has some local changes).

maybe przemek would want to take a peek whether updating to the newer 
upstream is of any benefit to hvm.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[12818] trunk/harbour

2009-11-03 Thread Tamas TEVESZ
On Tue, 3 Nov 2009, dru...@users.sourceforge.net wrote:

  Revision: 12818

  http://harbour-project.svn.sourceforge.net/harbour-project/?rev=12818view=rev
  Author:   druzus
  Date: 2009-11-03 12:37:01 + (Tue, 03 Nov 2009)
  
  Log Message:
  ---
  2009-11-03 13:36 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/common/hbstr.c
  ! fixed typo in HB_TRACE message - problem reported by Alex
  
* harbour/src/rtl/cdpapi.c
  ! fixed casting for C++ builds - problem reported by Marcos

suncc is (still?) broken:

sunCC  -I. -I../../../../../include   -erroff=%none -g -DHB_TR_LEVEL_DEBUG   -o 
expropt1.o -c ../../../expropt1.c
/usr/include/stdio.h, line 480: Error: ( expected instead of 
__attribute__.
/usr/include/stdio.h, line 480: Error: ( expected instead of 
__attribute__.
/usr/include/stdio.h, line 480: Error: ) expected instead of 
__attribute__.
/usr/include/stdio.h, line 480: Error: ) expected instead of 
__attribute__.
/usr/include/stdio.h, line 483: Error: ( expected instead of 
__attribute__.
/usr/include/stdio.h, line 483: Error: ( expected instead of 
__attribute__.
/usr/include/stdio.h, line 483: Error: ) expected instead of 
__attribute__.
/usr/include/stdio.h, line 483: Error: ) expected instead of 
__attribute__.
/usr/include/stdio.h, line 488: Error: ( expected instead of 
__attribute__.
/usr/include/stdio.h, line 488: Error: ( expected instead of 
__attribute__.
/usr/include/stdio.h, line 488: Error: ) expected instead of 
__attribute__.
/usr/include/stdio.h, line 488: Error: ) expected instead of 
__attribute__.
12 Error(s) detected.
make[3]: *** [expropt1.o] Error 12
make[2]: *** [descend] Error 2
make[1]: *** [common] Error 2
make: *** [src] Error 2

sunc is ok, though.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Re: Random links

2009-10-29 Thread Tamas TEVESZ
On Thu, 29 Oct 2009, Viktor Szakáts wrote:

  BTW, does someone know if it's possible to run dosemu under
  amd64 Ubuntu?
  
  I'm tempted to move to 64-bit, but I'd cut myself out of
  DOS even more if it breaks dosemu.

why not virtualbox? i'm quite sure even the opensource edition can 
run dos quite fine.

i think i even have one setup up complete with networking n stuff, if 
you want (and i find it), i could send you that (it's basically a 
freedos + mslanman + i-forgot-what-tcpip, runs some custom app my mom 
has had for decades, which i'll rip out of course :).

(rip out the app, not my mom.)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] bug: GTXWC and HB_GTI_WINTITLE

2009-10-28 Thread Tamas TEVESZ
On Wed, 28 Oct 2009, Przemysław Czerpak wrote:

 hb_gtInfo( HB_GTI_WINTITLE, string with accented chars )
 doesn't seem to respect app CP (like now f.e. GTWVT does)
 with GTXWC, accented chars don't appear correctly in title
 bar.
 I tried to fix it by converting to UTF8 in gtxwc.c, but I
 may be missing something as it's still not right.
   this is a shot in the dark, but anyway.
   try adding
   XChangeProperty( wnd-dpy, wnd-window,
  XInternAtom( wnd-dpy, _NET_WM_NAME, False ),
  XInternAtom( wnd-dpy, UTF8_STRING, False ),
  8, PropModeReplace, wnd-szTitle, strlen( wnd-szTitle ));
   right after calling XStoreName() in gtxwc.c (line 2965).
  
  It will work and in such case it should be enough to replace
  XStoreName() with above XChangeProperty().
  But I'm interesting why you used _NET_WM_NAME property instead
  of WM_NAME used by XStoreName().

net_wm_hints is supposed to be a newer standard than wm_hints (and 
it's probably there for a reason). now, i don't know too much about x 
programming, but i suppose that everything alive now speak net_wm, so 
it just seemed natural.

  Anyhow for final version I suggest to use XSetWMName() instead
  of manually update properties:

according to the good old man, xsetwmname() sets wm_name, thus my 
manual way of setting net_wm_name instead.

but whichever you see fit, i guess. if wm_name works too, without side 
effects, then so be it.

  
 if( wnd-fDspTitle )
 {
wnd-fDspTitle = FALSE;
if( wnd-szTitle )
{
   ULONG ulLen = hb_cdpStringInUTF8Length( wnd-hostCDP, TRUE, 
  wnd-szTitle, strlen( wnd-szTitle ) );
   char * pBuffer = ( char * ) hb_xgrab( ulLen + 1 );
   XTextProperty text;
  
   hb_cdpStrnToUTF8( wnd-hostCDP, TRUE, wnd-szTitle, strlen( 
  wnd-szTitle ), pBuffer );
   text.value = ( unsigned char * ) pBuffer;
   text.encoding = s_atomUTF8String;
   text.format = 8;
   text.nitems = strlen( pBuffer );
   XSetWMName( wnd-dpy, wnd-window, text );
   hb_xfree( pBuffer );
}
else
   XStoreName( wnd-dpy, wnd-window,  );
 }
  
  best regards,
  Przemek
  ___
  Harbour mailing list
  Harbour@harbour-project.org
  http://lists.harbour-project.org/mailman/listinfo/harbour
  

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] bug: GTXWC and HB_GTI_WINTITLE

2009-10-27 Thread Tamas TEVESZ
On Wed, 28 Oct 2009, Viktor Szakáts wrote:

  hb_gtInfo( HB_GTI_WINTITLE, string with accented chars )
  
  doesn't seem to respect app CP (like now f.e. GTWVT does)
  with GTXWC, accented chars don't appear correctly in title
  bar.
  
  I tried to fix it by converting to UTF8 in gtxwc.c, but I
  may be missing something as it's still not right.

this is a shot in the dark, but anyway.

try adding

XChangeProperty( wnd-dpy, wnd-window,
XInternAtom( wnd-dpy, _NET_WM_NAME, False ),
XInternAtom( wnd-dpy, UTF8_STRING, False ),
8, PropModeReplace, wnd-szTitle, strlen( wnd-szTitle ));

right after calling XStoreName() in gtxwc.c (line 2965).

it could be that it is needed after line 3358, but i couldn't quickly 
figure out what that block really is for (adding this there as well 
probably won't hurt anyway).

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] silence gnu find in postinst.sh

2009-09-20 Thread Tamas TEVESZ

(doesn't hurt other finds)

Index: bin/postinst.sh
===
--- bin/postinst.sh (revision 12576)
+++ bin/postinst.sh (working copy)
@@ -46,7 +46,7 @@
 fi
 if [ $HB_PLATFORM != hpux ]; then
# Keep the size of the libraries to a minimim, but don't try to strip 
symlinks.
-   ${HB_CCPREFIX}strip -S `find $HB_LIB_INSTALL -type f -maxdepth 1`
+   ${HB_CCPREFIX}strip -S `find $HB_LIB_INSTALL -maxdepth 1 -type f`
 fi
 
 chmod 644 $HB_INC_INSTALL/*

-- 
[-]

mkdir /nonexistentIndex: bin/postinst.sh
===
--- bin/postinst.sh (revision 12576)
+++ bin/postinst.sh (working copy)
@@ -46,7 +46,7 @@
 fi
 if [ $HB_PLATFORM != hpux ]; then
# Keep the size of the libraries to a minimim, but don't try to strip 
symlinks.
-   ${HB_CCPREFIX}strip -S `find $HB_LIB_INSTALL -type f -maxdepth 1`
+   ${HB_CCPREFIX}strip -S `find $HB_LIB_INSTALL -maxdepth 1 -type f`
 fi
 
 chmod 644 $HB_INC_INSTALL/*
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] haiku fallout

2009-09-20 Thread Tamas TEVESZ

hi,

now with libharbour*.so installed in /boot/common/lib/harbour/, things 
don't find it.


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] OS/2 question: HB_GT_LIB=os2pm

2009-09-18 Thread Tamas TEVESZ
On Fri, 18 Sep 2009, Viktor Szakáts wrote:

hi,

  We have an option to set HB_GT_LIB to 'os2pm'.
  
  I'd like to ask OS/2 users what is the use of this,
  and do we still need it?

(entirely uneducated guess)

pm stands for presentation manager, which is the os/2 gui. i 
suspect this must have been a gt using pm :), all fingers point to 
contrib/hbgf and/or examples/hbgf, which appears to have been removed 
completely.


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] haiku network stuff

2009-09-18 Thread Tamas TEVESZ
On Fri, 18 Sep 2009, Przemyslaw Czerpak wrote:

hi,

   Index: source/rtl/hbsocket.c
   ===
   --- source/rtl/hbsocket.c  (revision 12533)
   +++ source/rtl/hbsocket.c  (working copy)
   @@ -58,6 +58,10 @@
#  endif
#endif

   +#if defined( HB_OS_BEOS )
   +#  define HB_SOCKET_TRANSLATE_TYPE
   +#endif
   +
  
  I think it's typo. I've just check in header ifles and only
  protocol fmailies/domain should be translated so above define
  should be:
 #define HB_SOCKET_TRANSLATE_DOMAIN

you are right. i just checked, and it appears that translate_domain 
alone is enough. i saw you committed both, so the following should be 
applied to the current tree:

Index: source/rtl/hbsocket.c
===
--- source/rtl/hbsocket.c   (revision 12540)
+++ source/rtl/hbsocket.c   (working copy)
@@ -126,7 +126,6 @@
 #  endif
 #  if defined( HB_OS_BEOS )
 # define HB_SOCKET_TRANSLATE_DOMAIN
-# define HB_SOCKET_TRANSLATE_TYPE
 #  endif
 #  if defined( HB_OS_LINUX )
 # define HB_HAS_SELECT_TIMER

btw, did you find an alternative terminal, or could you make the 
build-in terminal work like a proper xterm? or some gt setting maybe? 
i'm having all kinds of character set problems, which disappear when i 
ssh in from my regular xterm -- but on the other hand, either sshd or 
the network hangs every now and then.

of your environment is stable, or at least stable-ish, any info 
would be appreciated :)

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] haiku network stuff

2009-09-18 Thread Tamas TEVESZ
On Fri, 18 Sep 2009, Tamas TEVESZ wrote:

  the firtst hunk is apparently needed -- with that, netiotest actually 
  starts and runs and seems to be doing its stuff fine. note, i'm 
  deliberately not mentioning an exit of any sorts -- it doesn't, 
  instead it eats up all memory and hangs, but that's for another day, 

it's netio_serverstop() that goes haywire.

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hb_sendmail issues under linux

2009-09-17 Thread Tamas TEVESZ
On Thu, 17 Sep 2009, Lorenzo Fiorini wrote:

  In contrib/hbtip/sendmail.prg these lines:
  
IF !( Right( cBody, 2 ) == hb_osNewLine() )
   cBody += hb_osNewLine()
ENDIF
  
  should be:
  
IF !( Right( cBody, 2 ) == Chr( 13 ) + Chr( 10 ) )
   cBody += Chr( 13 ) + Chr( 10 )
ENDIF

but this is stlill wrong.

code says:

cBody  - Optional. The body message of the email as text, or the filename 
of the HTML message to send.

so, after that, you have to append crlf.crlf _no matter what is in 
cbody_ already.

i think (from a quick skim of the code) that the correct solution 
would be deleting these three altogether, and the smtp client seems to 
already add this in it's commit(), which should be enough (and along 
these lines, appending anything to cbody is wrong).

can you dump out a complete conversation, and get it to me? preferably 
protect it with something so that whitespaces and stuff are not 
mangled, base64, for example).

  
  the standard requires Cr+Lf and servers like QMail reject messages
  with ONLY Lf reporting:
  
  451 See http://pobox.com/~djb/docs/smtplf.html
  
  while others like Postfix accept them but report:
  
  354 End data with CRLF.CRLF
  
  Using Chr( 13 ) + Chr( 10 ) seems to fix the send with QMail but
  Postfix still reports 354 ...
  
  Any comments is welcome.
  
  best regards,
  Lorenzo
  ___
  Harbour mailing list
  Harbour@harbour-project.org
  http://lists.harbour-project.org/mailman/listinfo/harbour
  

-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] hb_sendmail issues under linux

2009-09-17 Thread Tamas TEVESZ
On Thu, 17 Sep 2009, Viktor Szakáts wrote:

i think (from a quick skim of the code) that the correct solution
would be deleting these three altogether, and the smtp client seems to
already add this in it's commit(), which should be enough (and along
these lines, appending anything to cbody is wrong).
   
   I've tried to remove them but then a msg with an attachment is wrong.
   
   The client shows everything as text.
  
  Just a guess, but that appears to be some bugs in the attachment
  logic. It's strange that body needs to be hacked to make attachment
  work. Pbly attachment should add any linefeeds required.


in hbtip/mail.prg:SetBody() there is:

151 METHOD SetBody( cBody ) CLASS TipMail
152IF ::oEncoder != NIL
153   ::cBody := ::oEncoder:Encode( cBody )
154   ::lBodyEncoded := .T.  //GD needed to prevent an extra crlf from 
being appended
155ELSE
156   ::cBody := cBody
157ENDIF
158::hHeaders[ Content-Length ] := hb_ntos( Len( cBody ) )
159RETURN .T.

maybe this has something to do with it?



-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] netiosrv.c range check

2009-09-17 Thread Tamas TEVESZ

hi przemek,

netiosrv.c reads:

440   if( connsd != HB_NO_SOCKET )
441   {
442  BOOL fOK = FALSE;
443  BYTE msgbuf[ 64 ];
444 
445  conn = s_consrvNew( connsd, lsd-rootPath );
446 
447  if( s_srvRecvAll( conn, msgbuf, NETIO_MSGLEN ) == NETIO_MSGLEN 

it feels better to, instead of the magic 64, to either use some 
formula that includes NETIO_MSGLEN (say 2 * NETIO_MSGLEN + 16, if 
there is such a formula, or just some * NETIO_MSGLEN), or after the 
declaration, assert() that msgbuf needs to be this-and-this in size in 
relation to NETIO_MSGLEN.

my reason for that is that 64 is a magic constant, far in context 
from where and how it's being used, and using netio_msglen in there 
gives it some context, and is easier to figure out what it is for, and 
what the constraints for it's size are.


-- 
[-]

mkdir /nonexistent
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


  1   2   >