Permalink
Browse files

2010-07-16 18:22 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

  * external/minizip/minizip.dif
    + Updated after latest changed by Tamas Tevesz. Thanks a lot!

  * utils/hbmk2/hbmk2.prg
    + Added support for vxworks/diab compiler.

  * utils/hbtest/hbtest.prg
    + Added my name to the copyright header.

  * config/global.mk
    ! Fixed to only assign *nix specific default value HB_INSTALL_PREFIX
      on *nix hosts (only a problem when doing *nix cross-builds _from_
      non-*nix systems).

  * utils/hbmk2/hbmk2.prg
  * config/vxworks/gcc.mk
  * config/vxworks/diab.mk
    + Added minimal support for HB_BUILD_SHARED=yes for vxworks targets.
      For diab it just won't find the harbour .so (see comment for more)
      For gcc it links okay, though it's detected as kernel task, so
      current support is most probably not right.

  * config/vxworks/diab.mk
    * Minor change to sync one C compiler option with VxWorks Workbench
      generated one.

  ; NOTE: By this change Harbour VxWorks base port is finished. Besides
          being an interesting excercise, it helped to develope new
          non-*nix to *nix cross building codepaths, tweak Harbour for
          "headless" (w/o terminal) OSes, and to break the ground for
          target CPU selection inside one target platform.
          Harbour builds cleanly using both vxworks/gcc and vxworks/diab,
          and compiler tools plus non-MT utils run properly as well.

          Obviously I made few functional tests, but from the experiences
          of the port effort, these are the remaining areas:
             - reporting bug(s) to Wind River (particularly the one
               breaking hvm.c compilation, requiring HB_LONG_LONG_OFF
               forcage, causing other unnecessary limits and hbtest
               failures)
             - serial I/O needs to be implemented using VxWorks specific
               sioLib API
             - 'fork' has to be replaced.
             - sockets were not tested, anyhow they are supposed to work.
             - termios is missing, so large parts of GTSTD and GTTRM are
               disabled on this platform.
             - ARM/MIPS CPU support needs to be added to hbatomic.h
             - HB_LIBLOAD() and friends need to be implemented, but I hit
               walls here.
             - MT apps GPFs, this needs to be fixed probably inside our
               code, but it's possible some build options are needed which
               I missed all along.
             - HB_SHARED_MODE=yes needs further tweaking.
  • Loading branch information...
1 parent 64b5e77 commit 302211f9af601ed63dff84558e075be0ed3ffe45 @vszakats vszakats committed Jul 16, 2010
View
@@ -16,10 +16,65 @@
The license applies to all entries newer than 2009-04-28.
*/
+2010-07-16 18:22 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
+ * external/minizip/minizip.dif
+ + Updated after latest changed by Tamas Tevesz. Thanks a lot!
+
+ * utils/hbmk2/hbmk2.prg
+ + Added support for vxworks/diab compiler.
+
+ * utils/hbtest/hbtest.prg
+ + Added my name to the copyright header.
+
+ * config/global.mk
+ ! Fixed to only assign *nix specific default value HB_INSTALL_PREFIX
+ on *nix hosts (only a problem when doing *nix cross-builds _from_
+ non-*nix systems).
+
+ * utils/hbmk2/hbmk2.prg
+ * config/vxworks/gcc.mk
+ * config/vxworks/diab.mk
+ + Added minimal support for HB_BUILD_SHARED=yes for vxworks targets.
+ For diab it just won't find the harbour .so (see comment for more)
+ For gcc it links okay, though it's detected as kernel task, so
+ current support is most probably not right.
+
+ * config/vxworks/diab.mk
+ * Minor change to sync one C compiler option with VxWorks Workbench
+ generated one.
+
+ ; NOTE: By this change Harbour VxWorks base port is finished. Besides
+ being an interesting excercise, it helped to develope new
+ non-*nix to *nix cross building codepaths, tweak Harbour for
+ "headless" (w/o terminal) OSes, and to break the ground for
+ target CPU selection inside one target platform.
+ Harbour builds cleanly using both vxworks/gcc and vxworks/diab,
+ and compiler tools plus non-MT utils run properly as well.
+
+ Obviously I made few functional tests, but from the experiences
+ of the port effort, these are the remaining areas:
+ - reporting bug(s) to Wind River (particularly the one
+ breaking hvm.c compilation, requiring HB_LONG_LONG_OFF
+ forcage, causing other unnecessary limits and hbtest
+ failures)
+ - serial I/O needs to be implemented using VxWorks specific
+ sioLib API
+ - 'fork' has to be replaced.
+ - sockets were not tested, anyhow they are supposed to work.
+ - termios is missing, so large parts of GTSTD and GTTRM are
+ disabled on this platform.
+ - ARM/MIPS CPU support needs to be added to hbatomic.h
+ - HB_LIBLOAD() and friends need to be implemented, but I hit
+ walls here.
+ - MT apps GPFs, this needs to be fixed probably inside our
+ code, but it's possible some build options are needed which
+ I missed all along.
+ - HB_SHARED_MODE=yes needs further tweaking.
+
2010-07-16 09:04 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/idebrowse.prg
- ! Fixed: ideDBU - sequential search on a character field was
- making exact comparison, i.e., fieldval == searchval, now
+ ! Fixed: ideDBU - sequential search on a character field was
+ making exact comparison, i.e., fieldval == searchval, now
it is : fieldval = searchval.
2010-07-16 15:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
@@ -346,7 +401,7 @@
; TOFIX:
- Unrecoverable error 9998: Harbour terminal (GT) initialization failure
- when running hbtest.
+ when running hbtest. [DONE]
- GPF when running hbmk2 and hbrun. (hbformat, hbi18 startup fine)
It's related to MT mode.
@@ -452,7 +507,7 @@
; NOTE: - vxworks has no termios, for serial comm
support it has sioLib.h.
- vxworks supports another C compiler, which
- was not tested yet.
+ was not tested yet. [DONE]
- vxworks supports lots of CPUs, only x86 was
tested yet.
- There are still mutex related warnings to sort out.
@@ -1447,6 +1447,7 @@ else
ifneq ($(DESTDIR),)
HB_INSTALL_PREFIX := $(DESTDIR)
else
+ ifneq ($(HB_HOST_PLAT_UNIX),)
# Stick to *nix customs. I do not like it, it needs admin.
HB_INSTALL_PREFIX := /usr/local
# Add postfix for cross builds
@@ -1457,6 +1458,7 @@ else
endif
endif
endif
+ endif
HB_INSTALL_PREFIX := $(subst /,$(DIRSEP),$(HB_INSTALL_PREFIX))
else
@@ -76,6 +76,12 @@ DLIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS_DYN),-L$(dir))
LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS_BIN),-l$(lib))
+ifeq ($(HB_BUILD_SHARED),yes)
+ # TOFIX: .so is referred by it's full link time search path,
+ # there is even a backslash present in the dir formed by
+ # the linker
+ LDFLAGS += -Wl, -Xdynamic
+endif
LDFLAGS += $(LDLIBPATHS)
AR := $(HB_CCPREFIX)dar
@@ -54,6 +54,10 @@ DLIBPATHS := $(foreach dir,$(LIB_DIR) $(SYSLIBPATHS_DYN),-L$(dir))
LDLIBS := $(foreach lib,$(HB_USER_LIBS) $(LIBS) $(SYSLIBS_BIN),-l$(lib))
+ifeq ($(HB_BUILD_SHARED),yes)
+ # TOFIX: no entry point
+ LDFLAGS += -shared
+endif
LDFLAGS += $(LDLIBPATHS)
AR := $(HB_CCPREFIX)ar$(HB_CCPOSTFIX)
@@ -1,6 +1,6 @@
diff -urN minizip.orig/crypt.h minizip/crypt.h
---- minizip.orig/crypt.h 2010-07-16 00:52:06.960236990 +0200
-+++ minizip/crypt.h 2010-07-16 00:52:06.970234708 +0200
+--- minizip.orig/crypt.h 2010-07-16 15:11:30.820235577 +0200
++++ minizip/crypt.h 2010-07-16 15:11:30.820235577 +0200
@@ -38,6 +38,8 @@
* unpredictable manner on 16-bit systems; not a problem
* with any known compiler so far, though */
@@ -11,8 +11,8 @@ diff -urN minizip.orig/crypt.h minizip/crypt.h
return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
}
diff -urN minizip.orig/ioapi.c minizip/ioapi.c
---- minizip.orig/ioapi.c 2010-07-16 00:52:06.980235219 +0200
-+++ minizip/ioapi.c 2010-07-16 00:52:06.980235219 +0200
+--- minizip.orig/ioapi.c 2010-07-16 15:11:30.820235577 +0200
++++ minizip/ioapi.c 2010-07-16 15:11:30.820235577 +0200
@@ -15,6 +15,7 @@
#endif
@@ -143,9 +143,9 @@ diff -urN minizip.orig/ioapi.c minizip/ioapi.c
pzlib_filefunc_def->zopen_file = fopen_file_func;
pzlib_filefunc_def->zread_file = fread_file_func;
diff -urN minizip.orig/ioapi.h minizip/ioapi.h
---- minizip.orig/ioapi.h 2010-07-16 00:52:06.980235219 +0200
-+++ minizip/ioapi.h 2010-07-16 00:52:06.980235219 +0200
-@@ -21,29 +21,40 @@
+--- minizip.orig/ioapi.h 2010-07-16 15:11:30.820235577 +0200
++++ minizip/ioapi.h 2010-07-16 15:11:30.820235577 +0200
+@@ -21,29 +21,50 @@
#ifndef _ZLIBIOAPI64_H
#define _ZLIBIOAPI64_H
@@ -189,10 +189,20 @@ diff -urN minizip.orig/ioapi.h minizip/ioapi.h
+#include "hbsetup.h"
+
++#if defined( HB_OS_VXWORKS ) && defined( _STD_USING_INT_TYPES )
++ /* NOTE: Hack to avoid collision between stdint.h and types/vxTypes.h. [vszakats] */
++ #ifndef __BIT_TYPES_DEFINED__
++ #define __BIT_TYPES_DEFINED__
++ #endif
++ #ifndef _SYS_INT_TYPES_H
++ #define _SYS_INT_TYPES_H
++ #endif
++#endif
++
+#if defined( __BORLANDC__ ) || \
+ defined( __WATCOMC__ ) || \
+ defined( __MINGW32CE__ ) || \
-+ defined( __DCC__ ) || \
++ defined( HB_OS_VXWORKS ) || \
+ defined( HB_OS_BSD ) || \
+ defined( HB_OS_DARWIN ) || \
+ defined( HB_OS_HAIKU ) || \
@@ -204,8 +214,8 @@ diff -urN minizip.orig/ioapi.h minizip/ioapi.h
#define fopen64 fopen
#define ftello64 ftell
diff -urN minizip.orig/unzip.c minizip/unzip.c
---- minizip.orig/unzip.c 2010-07-16 00:52:07.040236336 +0200
-+++ minizip/unzip.c 2010-07-16 00:52:07.040236336 +0200
+--- minizip.orig/unzip.c 2010-07-16 15:11:30.870234454 +0200
++++ minizip/unzip.c 2010-07-16 15:11:30.870234454 +0200
@@ -68,13 +68,17 @@
#include <stdlib.h>
#include <string.h>
@@ -293,8 +303,8 @@ diff -urN minizip.orig/unzip.c minizip/unzip.c
pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc;
pfile_in_zip_read_info->crc32=0;
diff -urN minizip.orig/zip.c minizip/zip.c
---- minizip.orig/zip.c 2010-07-16 00:52:07.100236615 +0200
-+++ minizip/zip.c 2010-07-16 00:52:07.100236615 +0200
+--- minizip.orig/zip.c 2010-07-16 15:11:30.930234949 +0200
++++ minizip/zip.c 2010-07-16 15:11:30.930234949 +0200
@@ -29,16 +29,20 @@
#include "zlib.h"
#include "zip.h"
Oops, something went wrong.

0 comments on commit 302211f

Please sign in to comment.