X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: dj AT delorie DOT com X-Recipient: djgpp AT delorie DOT com Message-ID: Content-Type: multipart/alternative; boundary="_4d39ff54-2f58-4559-84ee-9c160fb2115e_" X-Originating-IP: [131.107.0.103] From: Jay To: DJ Delorie CC: Subject: RE: libstdc++ writev/2.04/patches upstream? Date: Mon, 7 Jul 2008 23:40:10 +0000 Importance: Low In-Reply-To: <200807072141.m67Lf1A6003751@envy.delorie.com> References: <200807070405 DOT m67451dZ010910 AT delorie DOT com> <200807071920 DOT m67JKA4v032518 AT envy DOT delorie DOT com> <200807072141 DOT m67Lf1A6003751 AT envy DOT delorie DOT com> MIME-Version: 1.0 X-OriginalArrivalTime: 07 Jul 2008 23:40:10.0539 (UTC) FILETIME=[CB9027B0:01C8E08A] Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --_4d39ff54-2f58-4559-84ee-9c160fb2115e_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable > Yup=2C and you have to build just the compiler portions of gcc=2C then> b= uild djlsr=2C then go back and build the library portions of gcc. The> djcr= x package helps you bootstrap a sys-root. Right=2C I'm using djcrx. =20 For now I'm cheating=2C I let gcc build "all" and I haven't build the runti= me yet. Even so=2C as long as you bootstrap from djcrx (or a full native environmen= t)=2C you should be able to get away with building all. Unless=2C like=2C w= ell=2C for djgpp=2C nothing=2C but for systems with dynamic linking=2C libg= cc.so would need libc=2C so then what you said=2C or do the integrated cygn= us tree thingy (which I should really construct anyway=2C gcc+binutils+gmp+= mpfr). =20 Oh=2C or=2C right=2C depending on how the runtime changes. Like when you go and add something like writev=2C you have to build that=2C= then go back and build libstdc++ to use it. =20 It's all very circular=2C I like to say. :) =20 > It's not=2C but automated testing for *any* cross is nearly impossible = > without some manual intervention. That's why we have special cases=20 =20 I (naively?) disagree. You can do lots of compile and link tests=2C but not= any run tests. Do you count setting up a sys-root ahead of time "manual intervention"? If = so=2C ok. =20 I realize that in bringing up a truly new platform=2C things are more diffi= cult. You have to build the sys-root=2C somehow. The .h files you write yourself= =2C ok. The .libs you can't make because you don't yet have a compiler. The= compiler (at least libstdc++) you can't configure without the .libs. Deadl= ock. =20 But once things are in place=2C you can cheat and reuse the previous build = outputs=2C hoping they are not too divergent from current. =20 You have to "cheat" in any case=2C like starting with a compiler and linker= from somewhere. "Manual intervention" is also initial machine setup. - Jay> Date: Mon=2C 7 Jul 2008 17:41:01 -0400> From: dj AT delorie DOT com> To: j= ayk123 AT hotmail DOT com> CC: djgpp AT delorie DOT com> Subject: Re: libstdc++ writev/2.= 04/patches upstream?> > > > Why is it any more difficult than any other cro= ssed situation (of various s=3D> > orts)?> > It's not=2C but automated test= ing for *any* cross is nearly impossible> without some manual intervention.= That's why we have special cases> for newlib=2C cygwin=2C vxworks=2C and d= jgpp - those are common cases that> we can't otherwise autodetect enough ab= out.> > > 2) cross binutils before cross gcc> > Yup=2C and you have to buil= d just the compiler portions of gcc=2C then> build djlsr=2C then go back an= d build the library portions of gcc. The> djcrx package helps you bootstrap= a sys-root.= --_4d39ff54-2f58-4559-84ee-9c160fb2115e_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable >=3B Yup=2C and you have to build just the compiler portions of gcc=2C th= en
>=3B build djlsr=2C then go back and build the library portions of = gcc. The
>=3B djcrx package helps you bootstrap a sys-root.

Right=2C I'm using djcrx.
 =3B
For now I'm cheating=2C I let gcc build "all" and I haven't build the runti= me yet.
Even so=2C as long as you bootstrap from djcrx (or a full native environmen= t)=2C you =3Bshould be able to get away with building all. =3BUnles= s=2C like=2C well=2C for djgpp=2C nothing=2C but for systems with dynamic l= inking=2C libgcc.so would need libc=2C so then what you said=2C or do the i= ntegrated cygnus tree thingy (which I should really construct anyway=2C gcc= +binutils+gmp+mpfr).
 =3B
Oh=2C or=2C right=2C depending on how the runtime changes.
Like when you go and add something like writev=2C you have to build that=2C= then go back and build libstdc++ to use it.
 =3B
It's all very circular=2C I like to say. :)
 =3B
 =3B>=3B It's not=2C but automated testing for *any* cross is nearly = impossible
 =3B>=3B without some manual intervention. That's why = we have special cases
 =3B
I (naively?) disagree. You can do lots of compile and link tests=2C but not= any run tests.
Do you count setting up a sys-root ahead of time "manual intervention"? If = so=2C ok.
 =3B
I realize that in bringing up a truly new platform=2C things are more diffi= cult.
 =3BYou have to build the sys-root=2C somehow. The .h files you write y= ourself=2C ok. The .libs you can't make because you don't yet have a compil= er. The compiler (at least libstdc++) you can't configure without the .libs= . Deadlock.
 =3B
But once things are in place=2C you can cheat and reuse the previous build = outputs=2C hoping they are not too divergent from current.
 =3B
You have to "cheat" in any case=2C like starting with a compiler and linker= from somewhere.
"Manual intervention" is also initial machine setup.

 =3B- Jay


>=3B Date: Mon=2C 7 Jul 2008 17:41:01 -0400
&= gt=3B From: dj AT delorie DOT com
>=3B To: jayk123 AT hotmail DOT com
>=3B CC: = djgpp AT delorie DOT com
>=3B Subject: Re: libstdc++ writev/2.04/patches upst= ream?
>=3B
>=3B
>=3B >=3B Why is it any more difficult t= han any other crossed situation (of various s=3D
>=3B >=3B orts)?>=3B
>=3B It's not=2C but automated testing for *any* cross is nea= rly impossible
>=3B without some manual intervention. That's why we ha= ve special cases
>=3B for newlib=2C cygwin=2C vxworks=2C and djgpp - t= hose are common cases that
>=3B we can't otherwise autodetect enough a= bout.
>=3B
>=3B >=3B 2) cross binutils before cross gcc
>= =3B
>=3B Yup=2C and you have to build just the compiler portions of g= cc=2C then
>=3B build djlsr=2C then go back and build the library port= ions of gcc. The
>=3B djcrx package helps you bootstrap a sys-root.
= --_4d39ff54-2f58-4559-84ee-9c160fb2115e_--