Mailing-List: contact cygwin-apps-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-apps-owner AT sourceware DOT cygnus DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Delivered-To: mailing list cygwin-apps AT sources DOT redhat DOT com Message-ID: <012701c0f995$75f4e180$0400a8c0@local> From: "Robert Collins" To: Subject: bootstrapping cygwin cross-compiler Date: Thu, 21 Jun 2001 00:11:59 +1000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_00FF_01C0F9E6.C9ECAF60" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 X-OriginalArrivalTime: 20 Jun 2001 14:26:42.0477 (UTC) FILETIME=[06BB85D0:01C0F995] This is a multi-part message in MIME format. ------=_NextPart_000_00FF_01C0F9E6.C9ECAF60 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I'm half way through a painful move from win2k as my primary OS at home, = to linux, where I'll run win 95 and maybe 2K in a virtual machine... One of the points of the exercise is to be able to build cygwin a little = faster :]. To that end I'm building a cross-toolchain. I'm caught in the chicken-and-egg bit with newlib and gcc, and would = appreciate some pointers - either to reading material, or to actions. = (I recall Mumit's page being rather dated... thus my question). Steps so far: grabbed the winsup tree, added bfd, binutils and opcodes all from cvs.=20 Built bfd, opcodes and binutils, with --target=3Di686-pc-cygwin. = installed that (/usr/local). grabbed gcc from a cygwin mirror. configured with = --target=3Di686-pc-cygwin.=20 That fails partway thrugh the build (see the errors below). I figure = thats because no cross-headers have been installed. So... I go to build = newlib, but cannot as, you guessed it, i686-pc-cygwin-gcc doesn't exist = yet. Hints ? Rob make[2]: Leaving directory = `/usr/home/robertc/src/cygwin/build/gcc-cygwin/gcc/intl' rm -f tmplibgcc2.a for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3 = _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 = _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi = _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi = _fixtfdi _fixunstfdi _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb = _shtab _clear_cache _trampoline __main _exit _ctors _pure; \ do \ echo ${name}; \ /home/robertc/src/cygwin/build/gcc-cygwin/gcc/xgcc = -B/home/robertc/src/cygwin/build/gcc-cygwin/gcc/ = -B/usr/local/i686-pc-cygwin/bin/ -I/usr/local/i686-pc-cygwin/include -O2 = -I../../../src/gcc-2.95.3-5/gcc/../winsup/include -DCROSS_COMPILE = -DIN_GCC -g -O2 -I./include -g1 -DIN_LIBGCC2 = -D__GCC_FLOAT_NOT_NEEDED -I. -I../../../src/gcc-2.95.3-5/gcc = -I../../../src/gcc-2.95.3-5/gcc/config = -I../../../src/gcc-2.95.3-5/gcc/../include -c -DL${name} \ ../../../src/gcc-2.95.3-5/gcc/libgcc2.c -o ${name}.o; \ if [ $? -eq 0 ] ; then true; else exit 1; fi; \ i686-pc-cygwin-ar rc tmplibgcc2.a ${name}.o; \ rm -f ${name}.o; \ done _muldi3 ../../../src/gcc-2.95.3-5/gcc/libgcc2.c:41: stdlib.h: No such file or = directory ../../../src/gcc-2.95.3-5/gcc/libgcc2.c:42: unistd.h: No such file or = directory ------=_NextPart_000_00FF_01C0F9E6.C9ECAF60 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
I'm half way through a painful move = from win2k as=20 my primary OS at home, to linux, where I'll run win 95 and maybe 2K in a = virtual=20 machine...
 
One of the points of the exercise is to = be able to=20 build cygwin a little faster :]. To that end I'm building a=20 cross-toolchain.
 
I'm caught in the chicken-and-egg bit = with newlib=20 and gcc, and would appreciate some pointers  - either to reading = material,=20 or to actions. (I recall Mumit's page being rather dated... thus my=20 question).
 
Steps so far:
grabbed the winsup tree, added bfd, = binutils and=20 opcodes all from cvs.
Built bfd, opcodes and binutils, with=20 --target=3Di686-pc-cygwin. installed that (/usr/local).
grabbed gcc from a cygwin mirror. = configured=20 with --target=3Di686-pc-cygwin.
That fails partway thrugh the build = (see the errors=20 below). I figure thats because no cross-headers have been installed. = So... I go=20 to build newlib, but cannot as, you guessed it, i686-pc-cygwin-gcc = doesn't exist=20 yet.
 
Hints ?
 
Rob
 
make[2]: Leaving directory=20 `/usr/home/robertc/src/cygwin/build/gcc-cygwin/gcc/intl'
rm -f=20 tmplibgcc2.a
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 = _negdi2=20 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 = _ucmpdi2=20 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi = _fixunssfdi=20 _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi = _fixunstfdi=20 _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb _shtab _clear_cache=20 _trampoline __main _exit _ctors _pure; \
do \
  echo ${name}; = \
  /home/robertc/src/cygwin/build/gcc-cygwin/gcc/xgcc=20 -B/home/robertc/src/cygwin/build/gcc-cygwin/gcc/=20 -B/usr/local/i686-pc-cygwin/bin/ -I/usr/local/i686-pc-cygwin/include -O2 = -I../../../src/gcc-2.95.3-5/gcc/../winsup/include -DCROSS_COMPILE=20 -DIN_GCC     -g -O2 -I./include   = -g1 =20 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I.=20 -I../../../src/gcc-2.95.3-5/gcc -I../../../src/gcc-2.95.3-5/gcc/config=20 -I../../../src/gcc-2.95.3-5/gcc/../include -c -DL${name}=20 \
      =20 ../../../src/gcc-2.95.3-5/gcc/libgcc2.c -o ${name}.o; \
  if [ = $? -eq 0=20 ] ; then true; else exit 1; fi; \
  i686-pc-cygwin-ar rc = tmplibgcc2.a=20 ${name}.o; \
  rm -f ${name}.o;=20 \
done
_muldi3
../../../src/gcc-2.95.3-5/gcc/libgcc2.c:41: = stdlib.h: No=20 such file or directory
../../../src/gcc-2.95.3-5/gcc/libgcc2.c:42: = unistd.h:=20 No such file or directory
------=_NextPart_000_00FF_01C0F9E6.C9ECAF60--