From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26403 invoked by alias); 16 Mar 2010 21:15:00 -0000 Received: (qmail 26391 invoked by uid 22791); 16 Mar 2010 21:15:00 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from vsmtp12.tin.it (HELO vsmtp12.tin.it) (212.216.176.206) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 16 Mar 2010 21:14:55 +0000 Received: from [192.168.0.4] (79.33.222.108) by vsmtp12.tin.it (8.5.113) id 4B01E7CF0AB4A835; Tue, 16 Mar 2010 22:14:38 +0100 Message-ID: <4B9FF4BA.3010206@oracle.com> Date: Tue, 16 Mar 2010 21:21:00 -0000 From: Paolo Carlini User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100228 SUSE/3.0.3-1.1.1 Thunderbird/3.0.3 MIME-Version: 1.0 To: "H.J. Lu" CC: Jakub Jelinek , "gcc@gcc.gnu.org" , Jason Merrill Subject: Re: Why is __i686 undefined for x86_64 -m32 (in mainline) References: <4B9FDCC1.2080201@oracle.com> <6dc9ffc81003161253g6f2ef24dv605118dbc7664aa1@mail.gmail.com> <4B9FE683.2080903@oracle.com> <6dc9ffc81003161340o721cd497w5a63fb6ff9c24b0e@mail.gmail.com> <4B9FEFCA.2060308@oracle.com> <20100316205821.GB3601@sunsite.ms.mff.cuni.cz> <6dc9ffc81003161408k78a6b898p5f54c7c3b7b7a99d@mail.gmail.com> In-Reply-To: <6dc9ffc81003161408k78a6b898p5f54c7c3b7b7a99d@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2010-03/txt/msg00205.txt.bz2 On 03/16/2010 10:08 PM, H.J. Lu wrote: > I don't think it is a good idea to change the meaning of the macros years >> after they have been introduced. >> You could add a different macro if you want. >> Why should be __i686 special? i686 does have __i586 features too, should it >> define also __i586, __i486? Should __core2 define __pentium4? Etc., etc. >> >> > I don't think we should add those at all. > About i586 & co, I see now that you are right. To recapitulate my point, it just seemed strange to me, that, before and after the recent changes, __i386 is defined, whereas __i686 is defined only if I pass -march=i686. On the other hand, after the recent changes, which essentially change the default subtarget to -march=i686, __i686 is not defined by default. Paolo.