Message-ID: <001001c2bd4b$423c7350$0100a8c0@acp42g> From: "Andrew Cottrell" To: Subject: GCC 3.2.1 build failure Date: Thu, 16 Jan 2003 21:36:53 +1100 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_000D_01C2BDA7.631ABD00" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Reply-To: djgpp-workers AT delorie DOT com This is a multi-part message in MIME format. ------=_NextPart_000_000D_01C2BDA7.631ABD00 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Any help or ideas with this one would be greatfully appreciated.=20 I have traced what is hopefully the first problem with my attempt to = build GCC 3.2.1 with the latest 2.04 build I have completed (and also = the one currently available at clio) as follows:- 1) When GCC runs the gnu\gcc-3.21\gcc\fixinc\fixincl.sh once it has been = processed in the build the Fixing directory find is executed. The correct output looks like this:- Fixing headers into /dev/d/dj204/gnu/build.gcc/gcc/include for = i586-pc-msdosdj204 target Finding directories and links to directories Searching d:/dj204/include/. Fixing directory d:/dj204/include into = /dev/d/dj204/gnu/build.gcc/gcc/include Applying ctrl_quotes_def to libc/ttyprvt.h Applying dj204_wchar_h to sys/djtypes.h Applying io_quotes_def to sys/ioctl.h Applying limits_ifndefs to limits.h Applying undefine_null to locale.h Fixed: locale.h Applying sun_malloc to malloc.h Applying math_exception to math.h Applying math_huge_val_ifndef to math.h Fixed: math.h Applying gnu_types to stddef.h Applying undefine_null to stddef.h Fixed: stddef.h Applying stdio_stdarg_h to stdio.h Fixed: stdio.h Applying sysv68_string to string.h d:/dj204/bin/find.exe: error waiting for rm: No child processes = (ECHILD) Cleaning up unneeded directories: fixincludes is done if [ "d:/dj204/include" =3D "/dev/env/DJDIR/dj204/sys-include" ] \ The failure output is (modifed to give extra debug info):- Fixing headers into /dev/d/dj204/gnu/build.gcc/gcc/include for = i586-pc-msdosdjgpp target Finding directories and links to directories Searching d:/dj204/include/. Fixing directory d:/dj204/include into = /dev/d/dj204/gnu/build.gcc/gcc/include INPUT =3D d:/dj204/include required =3D LINKS =3D false FIND_BASE =3D . dir: /w: No such file or directory (ENOENT) d:/dj204/bin/find.exe: paths must precede expression Usage: d:/dj204/bin/find.exe [path...] [expression] ANDREW DONE Cleaning up unneeded directories: fixincludes is done if [ "d:/dj204/include" =3D "/dev/env/DJDIR/djgpp/sys-include" ] \ && [ -d /dev/env/DJDIR/djgpp/sys-include ]; then \ The relevant part of the gnu\gcc-3.21\gcc\fixinc\fixincl.sh file is as = follows, it has been modified to output the extra echo info at lines = 381:- 379 touch ${DESTDIR}/DONE 380 if test $VERBOSE -gt 1 381 then echo Fixing directory ${SRCDIR} into ${DESTDIR} ; echo = INPUT =3D ${INPUT} ; echo required =3D $required ; echo LINKS =3D = $LINKS ; echo FIND_BASE =3D ${FIND_BASE} ; echo dir /w ;fi 382 =20 383 # Check files which are symlinks as well as those which are = files. 384 # 385 cd ${INPUT} 386 required=3D"$required `if $LINKS; then 387 find ${FIND_BASE}/. -name '*.h' \( -type f -o -type l \) = -print; 388 else 389 find ${FIND_BASE}/. -name '*.h' -type f -print; 390 fi | \ 391 sed -e 's;/\./;/;g' -e 's;//*;/;g' | \ 392 ${FIXINCL}`" 393 394 if test $VERBOSE -gt 1 394 then echo ANDREW DONE; fi 2) If I go into the d:/dj204/include and run the following line then = find displays what looks like a list of header files find ./. -name '*.h' -type f -print 3) If I go into the d:/dj204/include and run the following line then I = get the error below the line which is the same as in the output:- find ./. -name '*.h' \( -type f -o -type l \) -print =20 Error is:- d:/dj204/bin/find.exe: paths must precede expression Usage: d:/dj204/bin/find.exe [path...] [expression] As I understand the shell file and the debug info this line should not = have been called as the $LINKS is false so the line in 2) above should = have been executed... If I remove the \ in the line then it works. Setup: I am using exactly the same bash,make and sed executable files in both = the workign GCC build and the failure build. In the build that works I am using the 2.04 packages I built way back on = 22-Oct-2002 and the build that fails I built on 10-Jan-2003. Thanks, Andrew ------=_NextPart_000_000D_01C2BDA7.631ABD00 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Any help or ideas with this one would = be greatfully=20 appreciated.
 
I have traced what is hopefully the = first problem=20 with my attempt to build GCC 3.2.1 with the latest 2.04 build I have = completed=20 (and also the one currently available at clio) as follows:-
 
1) When GCC runs the=20 gnu\gcc-3.21\gcc\fixinc\fixincl.sh once it has been processed in the = build the=20 Fixing directory find is executed.
 
The correct output looks like = this:-
    Fixing headers into=20 /dev/d/dj204/gnu/build.gcc/gcc/include for i586-pc-msdosdj204=20 target
    Finding directories and links to=20 directories
     Searching=20 d:/dj204/include/.
    Fixing directory = d:/dj204/include into=20 /dev/d/dj204/gnu/build.gcc/gcc/include
    Applying=20 ctrl_quotes_def          to = libc/ttyprvt.h
    Applying=20 dj204_wchar_h          =  =20 to sys/djtypes.h
    Applying=20 io_quotes_def          =  =20 to sys/ioctl.h
    Applying=20 limits_ifndefs          = ; to=20 limits.h
    Applying=20 undefine_null          =  =20 to locale.h
    Fixed:  = locale.h
   =20 Applying=20 sun_malloc          &nb= sp;   =20 to malloc.h
    Applying=20 math_exception          = ; to=20 math.h
    Applying=20 math_huge_val_ifndef     to = math.h
   =20 Fixed:  math.h
    Applying=20 gnu_types          &nbs= p;    =20 to stddef.h
    Applying=20 undefine_null          =  =20 to stddef.h
    Fixed:  = stddef.h
   =20 Applying=20 stdio_stdarg_h          = ; to=20 stdio.h
    Fixed:  stdio.h
    = Applying=20 sysv68_string          =  =20 to string.h
    d:/dj204/bin/find.exe: error waiting = for rm:=20 No child processes (ECHILD)
    Cleaning up unneeded=20 directories:
    fixincludes is = done
    if=20 [ "d:/dj204/include" =3D "/dev/env/DJDIR/dj204/sys-include" ] = \
The failure output is (modifed to give = extra debug=20 info):-
    Fixing headers into=20 /dev/d/dj204/gnu/build.gcc/gcc/include for i586-pc-msdosdjgpp=20 target
    Finding directories and links to=20 directories
     Searching=20 d:/dj204/include/.
    Fixing directory = d:/dj204/include into=20 /dev/d/dj204/gnu/build.gcc/gcc/include
    INPUT =3D=20 d:/dj204/include
    required = =3D
    LINKS =3D=20 false
    FIND_BASE =3D .
    dir: = /w: No such=20 file or directory (ENOENT)
    d:/dj204/bin/find.exe: = paths=20 must precede expression
    Usage: = d:/dj204/bin/find.exe=20 [path...] [expression]
    ANDREW = DONE
   =20 Cleaning up unneeded directories:
    fixincludes is=20 done
    if [ "d:/dj204/include" =3D=20 "/dev/env/DJDIR/djgpp/sys-include" ] \
    =   =20 && [ -d /dev/env/DJDIR/djgpp/sys-include ]; then = \
The relevant part of the=20 gnu\gcc-3.21\gcc\fixinc\fixincl.sh file is as follows, it has been = modified to=20 output the extra echo info at lines 381:-
    379  touch=20 ${DESTDIR}/DONE
    380  if test $VERBOSE -gt=20 1
    381  then echo Fixing directory ${SRCDIR} = into=20 ${DESTDIR} ; echo INPUT =3D ${INPUT} ;  echo required  =3D = $required =20 ;  echo LINKS  =3D $LINKS  ;  echo FIND_BASE =3D = ${FIND_BASE}=20 ;  echo dir /w ;fi
    382  =
   =20 383  # Check files which are symlinks as well as those which are=20 files.
    384  #
    385  = cd=20 ${INPUT}
    386  required=3D"$required `if = $LINKS;=20 then
    387    find ${FIND_BASE}/. = -name '*.h'=20 \( -type f -o -type l \) -print;
    388 =20 else
    389    find ${FIND_BASE}/. = -name '*.h'=20 -type f -print;
    390  fi | = \
   =20 391    sed -e 's;/\./;/;g' -e 's;//*;/;g' |=20 \
    392    = ${FIXINCL}`"
   =20 393
    394  if test $VERBOSE -gt = 1
   =20 394  then echo ANDREW DONE;  fi
 
2) If I go = into the =20 d:/dj204/include and run the following line then find displays what = looks like a=20 list of header files
    find ./. -name '*.h' = -type f=20 -print
3) If I go into the  = d:/dj204/include and run=20 the following line then I get the error below the line which is the same = as in=20 the output:-
    find ./. -name '*.h' = \( -type f=20 -o -type l \) -print
 
    Error = is:-
    = d:/dj204/bin/find.exe: paths=20 must precede expression
    Usage: = d:/dj204/bin/find.exe=20 [path...] [expression]
 
  As I understand the shell file = and the debug=20 info this line should not have been called as the $LINKS is false so the = line in=20 2) above should have been executed...
  If I remove the \ in the line = then it=20 works.
 
Setup:
I am using exactly the same bash,make = and=20 sed executable files in both the workign GCC build and the failure=20 build.
In the build that works I am using the = 2.04=20 packages I built way back on 22-Oct-2002 and the build that fails I = built on=20 10-Jan-2003.
 
Thanks,
Andrew
 
 
------=_NextPart_000_000D_01C2BDA7.631ABD00--