2009-12-10 21:49 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/include/hbatomic.h
    * removed 'static inline' from OpenWatcom ASM functions defined
      by '#pragma aux ...' to make OpenWatcom < 1.8 happy.
      Version 1.8 ignores 'static inline' attributes in such declarations.

  * harbour/config/dos/watcom.mk
  * harbour/utils/hbmk2/hbmk2.prg
    * switched from DOS/4GW to DOS/32A extender. It's faster what is
      noticeable also in final Harbour binaries, does not have DOS4G
      command line limitations and has nice tools which allow to easy
      set different runtime parameters (ss.exe) or compress final
      executable (sc.exe)
      BTW people having problem with maximum command line size in
      OpenWatcom tools can replace DOS/4GW with DOS/32A in this tools
      It can be made also globally by coping dos32a.exe to dos4gw.exe.
      NOTE: I've found why DOS Harbour OpenWatcom application created
            in my Linux box were not working. Just simply the directory
            with DOS extender setup files was not in PATH.
            Creating DOS OpenWatcom applications in other systems (i.e.
            Linux or OS2) do not forget to add directory with DOS binaries
            '%WATCOM%\binw' to PATH after directory with platform native
            OpenWatcom binaries '%WATCOM%\bin*' or copy DOS extender
            (dos32a.exe) to one of PATH directories.

  * harbour/config/dos/watcom.mk
    * added workaround for not included automatically by linker CLIB
      library when Harbour is compiler in pure C mode. I hope it's only
      temporary hack which we can remove in the future. I haven't added
      it to hbmk2 so linking DOS applications using hbmk2 user will have
      to add -lclib3r to hbmk2 parameters.

  * harbour/config/common/watcom.mk
    * disable DOS/32A banner messages
This commit is contained in:
Przemyslaw Czerpak
2009-12-10 20:49:23 +00:00
parent eddffc4d7c
commit b308f56ac2
5 changed files with 49 additions and 10 deletions

View File

@@ -17,6 +17,41 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-12-10 21:49 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbatomic.h
* removed 'static inline' from OpenWatcom ASM functions defined
by '#pragma aux ...' to make OpenWatcom < 1.8 happy.
Version 1.8 ignores 'static inline' attributes in such declarations.
* harbour/config/dos/watcom.mk
* harbour/utils/hbmk2/hbmk2.prg
* switched from DOS/4GW to DOS/32A extender. It's faster what is
noticeable also in final Harbour binaries, does not have DOS4G
command line limitations and has nice tools which allow to easy
set different runtime parameters (ss.exe) or compress final
executable (sc.exe)
BTW people having problem with maximum command line size in
OpenWatcom tools can replace DOS/4GW with DOS/32A in this tools
It can be made also globally by coping dos32a.exe to dos4gw.exe.
NOTE: I've found why DOS Harbour OpenWatcom application created
in my Linux box were not working. Just simply the directory
with DOS extender setup files was not in PATH.
Creating DOS OpenWatcom applications in other systems (i.e.
Linux or OS2) do not forget to add directory with DOS binaries
'%WATCOM%\binw' to PATH after directory with platform native
OpenWatcom binaries '%WATCOM%\bin*' or copy DOS extender
(dos32a.exe) to one of PATH directories.
* harbour/config/dos/watcom.mk
* added workaround for not included automatically by linker CLIB
library when Harbour is compiler in pure C mode. I hope it's only
temporary hack which we can remove in the future. I haven't added
it to hbmk2 so linking DOS applications using hbmk2 user will have
to add -lclib3r to hbmk2 parameters.
* harbour/config/common/watcom.mk
* disable DOS/32A banner messages
2009-12-10 21:00 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/hbqt_slots.h
- Deleted unnecessary headers.

View File

@@ -94,6 +94,8 @@ ifeq ($(ANYDOS),yes)
# disable DOS/4GW Banner
export DOS4G := quiet
# disable DOS/32A Banner
export DOS32A := /NOC
# work arround to DOS command line size limit
ifeq ($(CC),wcc386)

View File

@@ -51,12 +51,14 @@ LD := wlink
ifeq ($(HB_BUILD_DEBUG),yes)
LDFLAGS += DEBUG ALL
endif
# different SYS values: dos4g (default), pmodew (commercial), causeway
ifeq ($(LIBNAME),hbpp)
# we force causeway here as workaround for reduced command line size in dos4g
LDFLAGS += SYS causeway
else
LDFLAGS += SYS dos4g OP stub=wstubq.exe
# different SYS values: dos4g (default), pmodew (commercial), causeway,
# dos32a (DOS/32A LE executable), dos32x (DOS/32A LX executable)
LDFLAGS += SYS dos32a
# workaround for not included automatically CLIB in pure C mode builds
ifeq ($(CC),wcc386)
LDFLAGS += LIB clib3r.lib
endif
LDLIBS := $(HB_USER_LIBS)

View File

@@ -299,12 +299,12 @@ HB_EXTERN_BEGIN
# if HB_COUNTER_SIZE == 4
static inline void hb_atomic_inc32( volatile int * p );
void hb_atomic_inc32( volatile int * p );
#pragma aux hb_atomic_inc32 = \
"lock inc dword ptr [eax]" \
parm [ eax ] modify exact [] ;
static inline unsigned char hb_atomic_dec32( volatile int * p );
unsigned char hb_atomic_dec32( volatile int * p );
#pragma aux hb_atomic_dec32 = \
"lock dec dword ptr [eax]", \
"setne al" \
@@ -321,7 +321,7 @@ HB_EXTERN_BEGIN
# endif
static inline int hb_spinlock_trylock( volatile int * p );
int hb_spinlock_trylock( volatile int * p );
#pragma aux hb_spinlock_trylock = \
"mov eax, 1", \
"xchg eax, dword ptr [edx]" \

View File

@@ -2774,7 +2774,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause )
DO CASE
CASE hbmk[ _HBMK_cPLAT ] == "linux" ; cOpt_Link := "OP quiet SYS linux {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}"
CASE hbmk[ _HBMK_cPLAT ] == "win" ; cOpt_Link := "OP quiet {FL} NAME {OE} {LO} {DL} {LL} {LB} {LS}{SCRIPT}"
CASE hbmk[ _HBMK_cPLAT ] == "dos" ; cOpt_Link := "OP quiet SYS dos4g OP stub=wstubq.exe {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}"
CASE hbmk[ _HBMK_cPLAT ] == "dos" ; cOpt_Link := "OP quiet SYS dos32a {FL} NAME {OE} {LO} {DL} {LL} {LB}{SCRIPT}"
CASE hbmk[ _HBMK_cPLAT ] == "os2" ; cOpt_Link := "OP quiet SYS os2v2 {FL} NAME {OE} {LO} {DL} {LL} {LB} {LS}{SCRIPT}"
ENDCASE
cBin_Dyn := cBin_Link