( We are at third stage )
I made some tests changing AR_RULE for os2gcc-a.out
Tested with gcc335-a.out
Background:
config\os2\gcc.mk are using for a.out:
----------------------
# We have to use a script to overcome the AR limit of max 850 characters
# in commmand line
define create_library
[...]
AR_RULE = $(create_library) $(ARSTRIP) & $(RM) __lib__.tmp
----------------------
Based in win, linux, I changed AR_RULE to use:
AR_RULE = ( $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) rcs $(LIB_DIR)/$@ $(^F)
$(ARSTRIP) ) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
Everything goes fine ( 9 *.a files, 2 *.exe files created ) until we get
a beautiful error:
--------------------
SYS0008: There is not enough memory available to process this command.
All available memory is in use.
make[3]: *** [hbrtl.a] Segmentation fault
make[2]: *** [descend] Error 2
make[1]: *** [rtl] Error 2
make: *** [source] Error 2
--------------------
trying to execute this long line:
----------------------
( ar rcs ../../../../../lib/os2/gcc/hbrtl.a abs.o accept.o ampm.o
[...]
typefilx.o valtoexp.o wait.o ) || ..\..\..\..\..\config\os2rm -f
..\..\..\..\..\lib\os2\gcc\hbrtl.a
----------------------
Line have around 2,463 bytes
HELP show:
----------------------
SYS0008: There is not enough memory available to process this command.
All available memory is in use.
EXPLANATION: If segment swapping is active, the swap file may be full
or an input/output (I/O) error may have occurred on the auxiliary
storage device that contains the swap file.
ACTION: Do one of the following and then retry the command:
o Reduce the number of running programs.
o Reduce the value of the BUFFERS=, TRACEBUF=, DISKCACHE=, THREADS=,
RMSIZE=, or DEVICE=VDISK.SYS statement in the CONFIG.SYS file and
then restart the system.
o Remove unwanted files from the swap file disk and restart the system.
o Install additional memory on your system.
o Check the swap file disk for an I/O error.
----------------------
Computer have 2 Gb RAM
Based on message and explanations, this is not a problem of limit of
characters in command line, but a problem of AR.exe execution with a lot
of work to do, around 251 *.o files
Fourth overflow I have seen in last months due long list of object files
We do not need to fix this case which is managed with auxiliary
__lib__.tmp file, I am just reporting what is happening
David Macias
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour