On Fri, 31 Jul 2009, David Arturo Macias Corona wrote:

Hi,

> Current Harbour under OS/2
>  * $Id: ChangeLog 11949 2009-07-31 11:21:30Z druzus $
> 2009-07-31 13:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
> It fail with:
> --------------------------------
> and make_ow.log contain:
> --------------------------------
> wpp386 -zq -bt=OS2 -w3 -5r -fp5 -onaehtr -s -ei -zp4 -zt0 -oi+ -i. 
> -i../../../../../include   -DHB_FM_STATISTICS_OFF   wait.c -fo=wait.obj
> echo ../../../../../lib/os2/watcom/hbrtl.lib > __lib__.tmp
> make[3]: Leaving directory 
> `E:/harbour907e/harbour/source/rtl/obj/os2/watcom'
> make[2]: Leaving directory `E:/harbour907e/harbour/source/rtl'
> make[1]: Leaving directory `E:/harbour907e/harbour/source'
> --------------------------------
> As old failure, can not create and fill __lib__.tmp

Thank you for your test.
In current os2/watcom.cf I added this lines to create libraries.

# maximum size of command line in OS2 is limited to 1024 characters
# the trick below with 'wordlist' is workaround for it
define create_library
echo $(LIB_DIR)/$@ > __lib__.tmp
$(if $(wordlist   1, 50,$(^F)), echo $(wordlist   1, 50,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  51,100,$(^F)), echo $(wordlist  51,100,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist 101,150,$(^F)), echo $(wordlist 101,150,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist 151,200,$(^F)), echo $(wordlist 151,200,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist 201,250,$(^F)), echo $(wordlist 201,250,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist 250,300,$(^F)), echo $(wordlist 250,300,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist 300,999,$(^F)), echo $(wordlist 300,999,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(AR) $(ARFLAGS) @__lib__.tmp
endef

Looks that it's not enough for OS2 GNU make 3.81 and it still GPFs.
So I will have to ask you to make some tests to locate what exactly
exploits the bug.
If it's single line size the we have a chance to create workaround for it.
If it's caused by total length of all commands then I'm afraid we cannot
resolve it in such way.
Please try to remove few lines from above command and reduce it to:

define create_library
echo $(LIB_DIR)/$@ > __lib__.tmp
$(if $(wordlist   1, 50,$(^F)), echo $(wordlist   1, 50,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  51,100,$(^F)), echo $(wordlist  51,100,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(AR) $(ARFLAGS) @__lib__.tmp
endef

and check if GPFs is gone (of course RTL library create in such way will
be uncomplited but it can give us important answer about the reason of
problem.
If it will still GPF then you can try to reduce single line length, i.e.

define create_library
echo $(LIB_DIR)/$@ > __lib__.tmp
$(if $(wordlist   1, 20,$(^F)), echo $(wordlist   1, 20,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  21, 40,$(^F)), echo $(wordlist  21, 40,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  41, 60,$(^F)), echo $(wordlist  41, 60,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  61, 80,$(^F)), echo $(wordlist  61, 80,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  81,100,$(^F)), echo $(wordlist  81,100,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(AR) $(ARFLAGS) @__lib__.tmp
endef

If it still generates GPF then you can finally try sth like:
define create_library
echo $(LIB_DIR)/$@ > __lib__.tmp
$(if $(wordlist   1, 10,$(^F)), echo $(wordlist   1, 10,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  11, 20,$(^F)), echo $(wordlist  11, 20,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(if $(wordlist  21, 30,$(^F)), echo $(wordlist  21, 30,$(addprefix -+,$(^F))) 
>> __lib__.tmp,)
$(AR) $(ARFLAGS) @__lib__.tmp
endef

your results should help in locating the exact reason of problem.

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

Reply via email to