Przemek:

>Thank you very much. So the last version work.
>What will happen if we add more lines, i.e.:

>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,)
>$(if $(wordlist  31, 40,$(^F)), echo $(wordlist  31, 40,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist  41, 50,$(^F)), echo $(wordlist  41, 50,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist  51, 60,$(^F)), echo $(wordlist  51, 60,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist  61, 70,$(^F)), echo $(wordlist  61, 70,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist  71, 80,$(^F)), echo $(wordlist  71, 80,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist  81, 90,$(^F)), echo $(wordlist  81, 90,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist  91,100,$(^F)), echo $(wordlist  91,100,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 101,110,$(^F)), echo $(wordlist 101,110,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 111,120,$(^F)), echo $(wordlist 111,120,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 121,130,$(^F)), echo $(wordlist 121,130,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 131,140,$(^F)), echo $(wordlist 131,140,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 141,150,$(^F)), echo $(wordlist 141,150,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 151,160,$(^F)), echo $(wordlist 151,160,$(addprefix >-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 161,170,$(^F)), echo $(wordlist 161,170,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 171,180,$(^F)), echo $(wordlist 171,180,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 181,190,$(^F)), echo $(wordlist 181,190,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 191,200,$(^F)), echo $(wordlist 191,200,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 201,210,$(^F)), echo $(wordlist 201,210,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 211,220,$(^F)), echo $(wordlist 211,220,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 221,230,$(^F)), echo $(wordlist 221,230,$(addprefix >-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 231,240,$(^F)), echo $(wordlist 231,240,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 241,250,$(^F)), echo $(wordlist 241,250,$(addprefix >-+,$(^F))) >> __lib__.tmp,) >$(if $(wordlist 251,260,$(^F)), echo $(wordlist 251,260,$(addprefix >-+,$(^F))) >> __lib__.tmp,) >$(if $(wordlist 261,270,$(^F)), echo $(wordlist 261,270,$(addprefix >-+,$(^F))) >> __lib__.tmp,) >$(if $(wordlist 271,280,$(^F)), echo $(wordlist 271,280,$(addprefix >-+,$(^F))) >> __lib__.tmp,) >$(if $(wordlist 281,290,$(^F)), echo $(wordlist 281,290,$(addprefix >-+,$(^F))) >> __lib__.tmp,) >$(if $(wordlist 291,300,$(^F)), echo $(wordlist 291,300,$(addprefix >-+,$(^F))) >> __lib__.tmp,)
>$(AR) $(ARFLAGS) @__lib__.tmp
>endef

>???

It fail:
----------------------------
[E:\harbour907e\harbour]make -r            1>make_ow.log
make[3]: *** [hbrtl.lib] Segmentation fault
make[2]: *** [descend] Error 2
make[1]: *** [rtl] Error 2
make: *** [source] Error 2
----------------------------

Start to fail with 7 lines, after

$(if $(wordlist 51, 60,$(^F)), echo $(wordlist 51, 60,$(addprefix -+,$(^F))) >> __lib__.tmp,)


>Yes and it's a bug in OS2 GNU make port we are exploiting from time to
>time.
>If we find some acceptable solution the we will use it. If not we will
>have to return to the:
>   for %i in ( *$(OBJ_EXT) ) do @echo ... >> __lib__.tmp
>trick and add some hack to protect against adding hbpp.obj to library.

>Though we can also try to disable rules for parallel processing.
>They will reduce total number of used rules so maybe it's good
>workaround for the memory overflow.
>If you add at config/dir.cf[19]:

>   JOB_SRV := NO

>just before:

>   ifeq ($(JOB_SRV),NO)

>then you disable parallel processing rules.

Setting JOB_SRV := NO in config\dir.cf lead to message on screen for expected failure (same number of lines as before)

-----------------------------------------
[E:\harbour907e\harbour]make -r            1>make_ow.log
make[3]: *** [hbrtl.lib] Segmentation fault
make[2]: *** [descend] Error 2
-----------------------------------------

and CPU goes to 99.9, session hangs and can not be killed in any way, except reboot
Tested three times

>BTW what happens when you tries to use older make (3.7x) with current >SVN code?

Does not support inner dir separators in some cases

I posted this info some days ago:
-----------------------------------------
The two main differences observed between both make.exe are:
- make381 stop at first error, make376 continue building
- make376 have problems with dir separator at some points
  Along years this has been a problem with Harbour build and fixed
setting \\ in place of \ in some parts using "test and error"
  It does work using command line, but fail using make
  As now we can see, is a problem of make376 and not of OS/2
-----------------------------------------

I am trying to forget make376 and use only make381

David Macias


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

Reply via email to