From patchwork Tue Aug 26 17:53:04 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jessica Clarke X-Patchwork-Id: 383175 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 2762E140111 for ; Wed, 27 Aug 2014 03:54:03 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references; q=dns; s= default; b=tdZta4A82bFRHO+z0kgWxYXJJwVrGrMwmjzFrd4XUHNRnj9GYZHut t1qvaXnBsvphaf4czDHrnd6FjYbMiSO0nxgX9M0psuhbwiPsjdcNHKPM9Gg48+Vn InA1PLEedL5VAGK1pzPSVNRhHDgCIqlgTkljHvlq74TA2KV2GV/pZo= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references; s= default; bh=l31NcJ8L2BT81apO6JTnDfMmDY0=; b=AsB0YpG7ArDJiG6gFCGd oGrfl45a561SA1ZzULfmGSk2V5YiC7hu9Y0PAwiyOCrNUWpDmhgAYCUQoNJfMmu1 DoPgaL4VLRbOmVkWFM7HMk0MaDnXPUdRHG9lL86slARfe97mNZK1J2PYV36VvK09 zFjKZyGM5rsY39Qac+GwBdw= Received: (qmail 3914 invoked by alias); 26 Aug 2014 17:53:32 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 3826 invoked by uid 89); 26 Aug 2014 17:53:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-we0-f172.google.com Received: from mail-we0-f172.google.com (HELO mail-we0-f172.google.com) (74.125.82.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 26 Aug 2014 17:53:30 +0000 Received: by mail-we0-f172.google.com with SMTP id x48so15054496wes.17 for ; Tue, 26 Aug 2014 10:53:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=jQ8aZHBAd6aQJ3IMFFUC1zIOTmzfBeJqWQhaseZNEsU=; b=ZEISvHLAw5DY50YrRC61Bk+Sb3bXH0/uIiNgDt/YEd4PN2MISfBu+IeaTogPhunV+y keHiCITbuu+LaF16/7lQGW/F1EKz+VjpzZUNyGR2oPpv1QAHFbvFcwzF3q//OsSbYGL5 kfCdN6gaPffYcjRPv4n759z0DtCHYMMjkqHl66sGGgiuL584hkduzWM65VyWKa/Kn3jL a6tNcGfhawhTPA3VFIIbqLpPf0JPOPnpcOKY5ee5rsdjGk2oRaOZQ0EBra29YwMmO7AS vSoDeQGn70qIxdhTGxCTa0ZMzAUPZEt4Zy3F2ErEwYbWuSUn7Tr5W5SnlgeYKqj6V3MA 6hBQ== X-Gm-Message-State: ALoCoQnMHpMKdC7YES3VLWkvFWn2jzjHJFwoIerFfOH7bakEWM9BudLH82c2UMHmwPEEbxmuY3Z9 X-Received: by 10.194.236.132 with SMTP id uu4mr4232872wjc.108.1409075607185; Tue, 26 Aug 2014 10:53:27 -0700 (PDT) Received: from localhost.localdomain (host81-133-133-27.in-addr.btopenworld.com. [81.133.133.27]) by mx.google.com with ESMTPSA id ju1sm10097554wjc.1.2014.08.26.10.53.26 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 26 Aug 2014 10:53:26 -0700 (PDT) From: James Clarke To: gcc-patches@gcc.gnu.org Cc: James Clarke Subject: [PATCH v3 1/2] Fix __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ Date: Tue, 26 Aug 2014 18:53:04 +0100 Message-Id: <1409075585-64379-2-git-send-email-jrtc27@jrtc27.com> In-Reply-To: <1409075585-64379-1-git-send-email-jrtc27@jrtc27.com> References: <1409075585-64379-1-git-send-email-jrtc27@jrtc27.com> Previously, this macro had taken the form 10X0, where X is the minor version number, e.g. 1090 for OS X 10.9 Mavericks. However, as of OS X 10.10 Yosemite, it should take the form 10XX00, i.e. 101000 for 10.10. Added a test for the new format and fixed the formatting for the existing ones. gcc/ChangeLog: * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10 and above * config/darwin-driver.c (darwin_find_version_from_kernel): Removed kernel version check to avoid incrementing it after every major OS X release gcc/testsuite/ChangeLog: * gcc.db/darwin-minversion-1.c: Fixed formatting * gcc.db/darwin-minversion-2.c: Fixed formatting * gcc.db/darwin-minversion-3.c: Fixed formatting * gcc.dg/darwin-minversion-4.c: Added test for OS X 10.10 --- gcc/config/darwin-c.c | 25 +++++++++++++++++++------ gcc/config/darwin-driver.c | 2 -- gcc/testsuite/gcc.dg/darwin-minversion-1.c | 3 ++- gcc/testsuite/gcc.dg/darwin-minversion-2.c | 3 ++- gcc/testsuite/gcc.dg/darwin-minversion-3.c | 3 ++- gcc/testsuite/gcc.dg/darwin-minversion-4.c | 12 ++++++++++++ 6 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/darwin-minversion-4.c diff --git a/gcc/config/darwin-c.c b/gcc/config/darwin-c.c index 892ba35..7fe4b1f 100644 --- a/gcc/config/darwin-c.c +++ b/gcc/config/darwin-c.c @@ -571,21 +571,34 @@ find_subframework_header (cpp_reader *pfile, const char *header, cpp_dir **dirp) } /* Return the value of darwin_macosx_version_min suitable for the - __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro, - so '10.4.2' becomes 1040. The lowest digit is always zero. + __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro, so '10.4.2' + becomes 1040 and '10.10.0' becomes 101000. The lowest digit is + always zero, as is the second lowest for '10.10.x' and above. Print a warning if the version number can't be understood. */ static const char * version_as_macro (void) { - static char result[] = "1000"; + static char result[7] = "1000"; + int minorDigitIdx; if (strncmp (darwin_macosx_version_min, "10.", 3) != 0) goto fail; if (! ISDIGIT (darwin_macosx_version_min[3])) goto fail; - result[2] = darwin_macosx_version_min[3]; - if (darwin_macosx_version_min[4] != '\0' - && darwin_macosx_version_min[4] != '.') + + minorDigitIdx = 3; + result[2] = darwin_macosx_version_min[minorDigitIdx++]; + if (ISDIGIT (darwin_macosx_version_min[minorDigitIdx])) + { + /* Starting with OS X 10.10, the macro ends '00' rather than '0', + i.e. 10.10.x becomes 101000 rather than 10100. */ + result[3] = darwin_macosx_version_min[minorDigitIdx++]; + result[4] = '0'; + result[5] = '0'; + result[6] = '\0'; + } + if (darwin_macosx_version_min[minorDigitIdx] != '\0' + && darwin_macosx_version_min[minorDigitIdx] != '.') goto fail; return result; diff --git a/gcc/config/darwin-driver.c b/gcc/config/darwin-driver.c index 8b6ae93..eb478e8 100644 --- a/gcc/config/darwin-driver.c +++ b/gcc/config/darwin-driver.c @@ -57,8 +57,6 @@ darwin_find_version_from_kernel (char *new_flag) version_p = osversion + 1; if (ISDIGIT (*version_p)) major_vers = major_vers * 10 + (*version_p++ - '0'); - if (major_vers > 4 + 9) - goto parse_failed; if (*version_p++ != '.') goto parse_failed; version_pend = strchr(version_p, '.'); diff --git a/gcc/testsuite/gcc.dg/darwin-minversion-1.c b/gcc/testsuite/gcc.dg/darwin-minversion-1.c index d8a3243..6221d61 100644 --- a/gcc/testsuite/gcc.dg/darwin-minversion-1.c +++ b/gcc/testsuite/gcc.dg/darwin-minversion-1.c @@ -2,7 +2,8 @@ /* { dg-options "-mmacosx-version-min=10.1" } */ /* { dg-do run { target *-*-darwin* } } */ -int main(void) +int +main () { #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1010 fail me; diff --git a/gcc/testsuite/gcc.dg/darwin-minversion-2.c b/gcc/testsuite/gcc.dg/darwin-minversion-2.c index fd4975a..8e18d52 100644 --- a/gcc/testsuite/gcc.dg/darwin-minversion-2.c +++ b/gcc/testsuite/gcc.dg/darwin-minversion-2.c @@ -2,7 +2,8 @@ /* { dg-options "-mmacosx-version-min=10.1 -mmacosx-version-min=10.3" } */ /* { dg-do run { target *-*-darwin* } } */ -int main(void) +int +main () { #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1030 fail me; diff --git a/gcc/testsuite/gcc.dg/darwin-minversion-3.c b/gcc/testsuite/gcc.dg/darwin-minversion-3.c index d0c5934..4fcb969 100644 --- a/gcc/testsuite/gcc.dg/darwin-minversion-3.c +++ b/gcc/testsuite/gcc.dg/darwin-minversion-3.c @@ -2,7 +2,8 @@ /* { dg-options "-mmacosx-version-min=10.4.10" } */ /* { dg-do compile { target *-*-darwin* } } */ -int main(void) +int +main () { #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1040 fail me; diff --git a/gcc/testsuite/gcc.dg/darwin-minversion-4.c b/gcc/testsuite/gcc.dg/darwin-minversion-4.c new file mode 100644 index 0000000..1cb42eb --- /dev/null +++ b/gcc/testsuite/gcc.dg/darwin-minversion-4.c @@ -0,0 +1,12 @@ +/* Test that major versions greater than 9 work and have the additional 0. */ +/* { dg-options "-mmacosx-version-min=10.10.0" } */ +/* { dg-do compile { target *-*-darwin* } } */ + +int +main () +{ +#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 101000 + fail me; +#endif + return 0; +}