From patchwork Sun Aug 22 00:05:46 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jack Howarth X-Patchwork-Id: 62357 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]) by ozlabs.org (Postfix) with SMTP id 51937B70DA for ; Sun, 22 Aug 2010 10:06:00 +1000 (EST) Received: (qmail 18514 invoked by alias); 22 Aug 2010 00:05:57 -0000 Received: (qmail 18490 invoked by uid 22791); 22 Aug 2010 00:05:55 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL, BAYES_00, TW_BJ, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from bromo.med.uc.edu (HELO bromo.med.uc.edu) (129.137.3.146) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Sun, 22 Aug 2010 00:05:49 +0000 Received: from bromo.med.uc.edu (localhost.localdomain [127.0.0.1]) by bromo.med.uc.edu (Postfix) with ESMTP id A1551B005E; Sat, 21 Aug 2010 20:05:46 -0400 (EDT) Received: (from howarth@localhost) by bromo.med.uc.edu (8.14.3/8.14.3/Submit) id o7M05kwh022284; Sat, 21 Aug 2010 20:05:46 -0400 Date: Sat, 21 Aug 2010 20:05:46 -0400 From: Jack Howarth To: Mike Stump Cc: gcc-patches@gcc.gnu.org, iains@gcc.gnu.org Subject: Re: [PATCH] Depreciate darwin[0-7] Message-ID: <20100822000546.GA22227@bromo.med.uc.edu> References: <20100821035307.GA16646@bromo.med.uc.edu> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) 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 On Sat, Aug 21, 2010 at 03:38:37PM -0700, Mike Stump wrote: > On Aug 20, 2010, at 8:53 PM, Jack Howarth wrote: > > The attached patch depreciates darwin7 and earlier. These darwin releases > > only support stabs and haven't been properly maintained in quite some > > time. > > ? Last time I ran darwin7 it worked just fine and it wasn't that long ago. I don't believe it works any worse today does it? In fact, last time I ran darwin6 it worked just fine as I recall. > > > Okay for gcc trunk after adding any required documentation changes to the patch? > > I don't think darwin1 - darwin5 are worth saving anymore, and don't care if they go, so that part of the patch would be fine. darwin6 worked, last I knew and doesn't pose much a burden. Likewise I don't think keeping support for 7 in the tree is burdensome, indeed the size of the below patch is rather small. If someone accidentally breaks support for 6 or 7, it usually is trivial to get it to work again. So, for example, the recent patches to rip out -lm, those should be inside a target os conditional of 10.4 or later. If that were missing, should be trivial to add it. I just don't see the value in removing what amounts to a single line to support darwin7. > Mike, How exactly do you propose we make the use of remove-outfile conditional? Adding... doesn't work because you can't have a conditional within a define macro. Also, the existing version-compare() is insufficient because it only allows assignments and not the nested calling of another spec function. Also do we really know that darwin6 and darwin7 are functional (ie reasonably pass the testsuite)? It is unclear to me how libgcc_ext can properly function on systems that predate versioned libgcc releases. The entire mechanism of selecting symbols in libgcc_ext is based on support for versioned libgcc stubs. Jack > Thoughts? Index: gcc/config/darwin.h =================================================================== --- gcc/config/darwin.h (revision 163449) +++ gcc/config/darwin.h (working copy) @@ -303,9 +303,17 @@ so put a * after their names so all of them get passed. */ #define LINK_SPEC \ "%{static}%{!static:-dynamic} \ +#if __MACH__ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040) + %{!nodefaultlibs: %:remove-outfile(-lc) } \ + %:remove-outfile(-ldbm) \ %:remove-outfile(-ldl) \ + %:remove-outfile(-linfo) \ %:remove-outfile(-lm) \ + %:remove-outfile(-lpoll) \ + %:remove-outfile(-lproc) \ %:remove-outfile(-lpthread) \ + %:remove-outfile(-lrpcsvc) \ +#endif %{fgnu-runtime: %{static|static-libgcc: \ %:replace-outfile(-lobjc libobjc-gnu.a%s); \ :%:replace-outfile(-lobjc -lobjc-gnu ) } }\