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

Hi,

> >This looks like side effect caused by results of some previous builds.
> >It's possible that if you clean all files left by previous builds then
> >above warnings disappear. If it will not help then I would like to see
> >whole log file created for 'pp' directory.
> Is a fresh checkout, same warnings
> Below are partial content of make_ow.log from source dir to hbpp.lib
>
> make[3]: Entering directory 
> `E:/harbour907e/harbour/source/pp/obj/os2/watcom'
> wpp386 -zq -bt=OS2 -w3 -5r -fp5 -onaehtr -s -ei -zp4 -zt0 -oi+ -i. 
> -i../../../../../include   -DHB_FM_STATISTICS_OFF   ../../../hbpp.c 
> -fo=hbpp.obj
  ^^^^^^^^^^^^
> wlink sys OS2V2  NAME ../../../../../bin/os2/watcom/hbpp.exe FILE hbpp.obj 
> LIB ../../../../../lib/os2/watcom/hbcommon, 
> ../../../../../lib/os2/watcom/hbnortl
> Open Watcom Linker Version 1.8
> Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
> Source code is available under the Sybase Open Watcom Public License.
> See http://www.openwatcom.org/ for details.
> loading object files
> searching libraries
> creating an OS/2 32-bit executable
> ../../../../../bin/os2/watcom/hbpp.exe ../../../../../include/hbstdgen.ch 
> -opptable.c -q -c../../../../../ -v../../../../../include/hbverbld.h
> Harbour Preprocessor 2.0.0beta2
> Copyright (c) 1999-2009, http://www.harbour-project.org/
> wpp386 -zq -bt=OS2 -w3 -5r -fp5 -onaehtr -s -ei -zp4 -zt0 -oi+ -i. 
> -i../../../../../include   -DHB_FM_STATISTICS_OFF   pptable.c 
> -fo=pptable.obj
> wpp386 -zq -bt=OS2 -w3 -5r -fp5 -onaehtr -s -ei -zp4 -zt0 -oi+ -i. 
> -i../../../../../include   -DHB_FM_STATISTICS_OFF   ../../../ppcore.c 
> -fo=ppcore.obj
[...]
> for %i in ( *.obj ) do @echo -+%i >> __lib__.tmp
            ^^^^^^^^^
> wlib -p=64 -c -n  @__lib__.tmp
> Open Watcom Library Manager Version 1.8
> Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
> Source code is available under the Sybase Open Watcom Public License.
> See http://www.openwatcom.org/ for details.
> Warning! Duplicate symbol 'hb_pp_initRules_' ignored.
> Warning! Duplicate symbol 'hb_pp_tokenGet_' ignored.
> Warning! Duplicate symbol 'hb_pp_new_' ignored.
[...]
> rm hbpp.obj
> make[3]: Leaving directory `E:/harbour907e/harbour/source/pp/obj/os2/watcom'

As I wrote in one of previous messages this it's quite dangerous to use
code like:
   for %i in ( *$(OBJ_EXT) ) do @echo -+ %i >> __lib__.tmp
to create library and above situation exploited the problem.
Temporary file hbpp.obj created indirectly for hbpp.exe is added
to hbpp library. The same happens in GCC OS2 build though 'ar'
does not report above warnings.
I've just checked old messages between me and Maurilio and found why
it was added to os2/gcc.cf.
I can hardcode protection against it but instead of adding workaround
I would like to find cleaner way to create library without above
   for %i in ( *$(OBJ_EXT) ) do ...
in os2/gcc.cf and watcom.cf
The problem is caused by the GNU make 3.81 OS2 port. It GPFs with
original line:
   $(foreach file, $(^F), $(lib_object))
when the list of files is very long. Probably due insufficient memory
allocated for some operations and buffer overflow. There is question
if we can find workarond for it.

In a while I'll commit modifications to os2/watcom.cf which divided
list of library files into few smaller lists which should not exceed
1024 characters command line size limit in OS2.
Please test it.

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

Reply via email to