From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28220 invoked by alias); 11 Nov 2014 02:01:40 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 28018 invoked by uid 48); 11 Nov 2014 02:01:35 -0000 From: "jeremyhu at macports dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/61407] Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3 Date: Tue, 11 Nov 2014 02:01:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: unknown X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jeremyhu at macports dot org X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-11/txt/msg00778.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D61407 --- Comment #50 from Jeremy Huddleston Sequoia --- As this bug is now marked as resolved, I've filed #63810 to address the remaining issues. Lawrence Vel=C3=A1zquez is working= on a patch to address the issue. >>From gcc-bugs-return-466307-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Tue Nov 11 02:10:26 2014 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 30980 invoked by alias); 11 Nov 2014 02:10:25 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 30837 invoked by uid 48); 11 Nov 2014 02:10:18 -0000 From: "jeremyhu at macports dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug driver/63810] gcc sets incorrect macro for OS X deployment targets Date: Tue, 11 Nov 2014 02:10:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: driver X-Bugzilla-Version: unknown X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jeremyhu at macports dot org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-11/txt/msg00779.txt.bz2 Content-length: 1896 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63810 --- Comment #1 from Jeremy Huddleston Sequoia --- Larry said that he's working on a patch to fix this for gcc trunk, and I suspect he's pretty close to having something since that was about a week ago. The algorithm for determining what the macro should be is quite simple: Split the string by "." Use implicit "0" if there are less than three elements. if (first field is >10) or (first field is 10 and second field >= 10), use "%02d%02d%02d" as the format else use "%02d%01d%01d" as the format I had to do this in bash for some unrelated reason, and here it is in case it is helpful to you: BUILD_MAJOR=$(echo ${PRODUCT_VERSION} | cut -f1 -d.) BUILD_MINOR=$(echo ${PRODUCT_VERSION} | cut -f2 -d.) BUILD_TINY=$(echo ${PRODUCT_VERSION} | cut -f3 -d.) [[ -z "${BUILD_MINOR}" ]] && BUILD_MINOR="0" [[ -z "${BUILD_TINY}" ]] && BUILD_TINY="0" if ((BUILD_MAJOR > 10 || (BUILD_MAJOR == 10 && BUILD_MINOR >= 10))) ; then VERSION_ENCODED=$(printf "%02d%02d%02d" ${BUILD_MAJOR} ${BUILD_MINOR} ${BUILD_TINY}) else VERSION_ENCODED=$(printf "%02d%01d%01d" ${BUILD_MAJOR} ${BUILD_MINOR} ${BUILD_TINY}) fi For clang, I did this (slightly less clean): - char Str[5]; - Str[0] = '0' + (Maj / 10); - Str[1] = '0' + (Maj % 10); - Str[2] = '0' + std::min(Min, 9U); - Str[3] = '0' + std::min(Rev, 9U); - Str[4] = '\0'; + char Str[7]; + if (Maj < 10 || Maj == 10 && Min < 10) { + Str[0] = '0' + (Maj / 10); + Str[1] = '0' + (Maj % 10); + Str[2] = '0' + std::min(Min, 9U); + Str[3] = '0' + std::min(Rev, 9U); + Str[4] = '\0'; + } else { + Str[0] = '0' + (Maj / 10); + Str[1] = '0' + (Maj % 10); + Str[2] = '0' + (Min / 10); + Str[3] = '0' + (Min % 10); + Str[4] = '0' + (Rev / 10); + Str[5] = '0' + (Rev % 10); + Str[6] = '\0'; + }