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: <39681B20.EF28F0E7@ece.gatech.edu> Date: Sun, 09 Jul 2000 02:26:40 -0400 From: Charles Wilson X-Mailer: Mozilla 4.7 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Chris Faylor CC: cygwin-apps AT sourceware DOT cygnus DOT com Subject: Re: processor compatibility when building packages References: <39675070 DOT 9C41CB2E AT ece DOT gatech DOT edu> <200007090141 DOT VAA03096 AT envy DOT delorie DOT com> <39680072 DOT 8E859850 AT ece DOT gatech DOT edu> <20000709014105 DOT A12976 AT cygnus DOT com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Chris Faylor wrote: > > On Sun, Jul 09, 2000 at 12:32:50AM -0400, Charles Wilson wrote: > >DJ Delorie wrote: > >>>Does cygwin only officially work on i686, so that it is okay to use > >>>these routines and break compatibility with older systems? > >> > >>Please do not break older systems. > > > >My inclination was to maintain as much compatibility as possible. > >However, I was confused since the official platform triple is now > >i686-pc-cygwin, not i386-pc-cygwin or ix86-pc-cygwin. It *USED* to be > >i386- but was changed sometime in the last six months. Why? What does > >the new triple signify? > > The last time I asked about this, I was informed that using the > i686-pc-cygwin triple does not break anything. You still have to use > special compiler flags to create code that is unusable on older CPUs. > I've sent mail to a gcc engineer to confirm this but he's probably > getting sick of me asking this question. > I'm sure that's correct. I wasn't asking about the technical ins-and-outs of what happens when you 'configure --target=i686-pc-cygwin' but rather about the *human factors*. To me, since we're supposed to build apps for 'latest' using i686-, it implies that the software COULD be restricted to i686 and better ONLY. For instance, the Red Hat contrib site for RH Linux contains the following tree: RPMS/i386 RPMS/i586 RPMS/i686 I assume that the stuff in RPMS/i386 works on pretty much all x86 hardware. However, it's possible that the packager who created an rpm in RPMS/i686 actually SET some of those funny gcc flags, and included i686-specific assembler routines, etc. So, I better avoid RPMS/i686 when downloading for my ancient 486 router. It's the same thing here: to me, using i686- means it's ok to go ahead and set the gcc flags, include the MMX assembler code, etc. Based on your response and DJ's, that interpretation is NOT true for cygwin. Cygwin is using the i686- moniker to denote 'Yup. It'll work on a 686. (btw it'll work on 586, 486, and 386 too)'. Linux (I think) uses i686- to denote 'Yup. It'll work on 686 and better. But not worse'. > In general, I think we'll probably get fewer questions using i686 than > i386. Since the i?86-pc-cygwin directory is disappearing, this may > not be as much of an issue. That is true -- on the main cygwin list. However, on the cygwin-apps list it needs to be clarified -- which I think this thread has done. To sum up: target=i686-pc-cygwin does NOT give license to use 686-optimized hand coded assembly routines in the distribution packages, nor to use the -m686 and similar flags when compiling with gcc. Packages in 'latest' must be backwards compatible to i386. Even if the target is i686. :-) --Chuck