delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-apps/2000/07/09/02:23:49

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: <mailto:cygwin-apps-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-apps/>
List-Post: <mailto:cygwin-apps AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-apps-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/lists.html#faqs>
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 <cwilson AT ece DOT gatech DOT edu>
X-Mailer: Mozilla 4.7 [en] (Win98; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Chris Faylor <cgf AT cygnus DOT com>
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>

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019