Viktor, Maurilio, Przemek:

In previous messages I exposed details of Harbour build using gcc335,
gcc432, gcc433, gcc440

Since then I build and use Harbour with gcc433

Messages are with subject "Harbour under OS/2 - eCS  gcc" and they
started in 17 August 2009
They contain detailed info

Now I present a summary in order to include in current Harbour build process

Historically gcc for OS/2 used a.out format, due some limitations in old
times
Now can use OMF type, as OpenWatcom for OS/2 does

gcc335: can use a.out and OMF types
gcc432, gcc433, gcc440: use only OMF type due problem with emxbind

Harbour use only a.out format
If we want to use newer gcc's in OS/2 we must include support for OMF


To use OMF:

- Same make.exe
- Modified OpenWatcom wlink.exe available in
  ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip
 and located somewhere in PATH
- gcc335, gcc432, gcc433, gcc440

Environment variables:
=====================
 set EMXOMFLD_TYPE=WLINK
 set EMXOMFLD_LINKER=WL.EXE

harbour\config\os2\gcc.mk
=========================
LIB_EXT := .lib
CFLAGS := -Zomf

Replacement of define create_library (emxomfar.exe work different):
define create_library
   $(if $(wildcard $(subst /,$(DIRSEP),$(LIB_FILE))),@$(RM) $(subst
/,$(DIRSEP),$(LIB_FILE)),)
   for %i in ( *$(OBJ_EXT) ) do $(AR) $(ARFLAGS) $(HB_USER_AFLAGS)
-p128 r $(LIB_DIR)/$@ %i$(ECHOQUOTE)
endef

AR := $(HB_CCPATH)$(HB_CCPREFIX)emxomfar
AR_RULE = $(create_library) $(ARSTRIP)


harbour\utils\hbmk2\hbmk2.prg
=============================
// DAVID: cOpt_CompC := "-c"
cOpt_CompC := "-c -Zomf"

//DAVID: cOpt_Link := "{LO} {LA} {FL} {DL}"
cOpt_Link := "-Zomf {LO} {LA} {FL} {DL}"

// DAVID: cLibLibExt := ".a"
cLibLibExt := ".lib"

// DAVID: cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "ar" + cCCEXT
cBin_Lib := hbmk[ _HBMK_cCCPREFIX ] + "emxomfar" + cCCEXT



After all, changes are minimal
Pending adjustment for .dll

We need some way to specify which format will be used in OS/2 gcc, at
least for gcc335
Default should be OMF as is supported for all os2-gcc compilers

My proposal is to use and environmental variable to choose code in
gcc.mk and hbmk2.prg
Something like HB_OS2_TCP32 which was included to choose "tcp/ip stack"
in OS/2

Note for Viktor: In current SVN there are not any reference to
HB_OS2_TCP32. It gone when make_gnu_os2.cmd was deleted
I still use it and maybe Maurilio will use it if upgrade his OS/2



Any suggestions, comments ?


David Macias



_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to