[PATCH] Depreciate darwin[0-7]

Jack Howarth howarth@bromo.med.uc.edu
Sun Aug 22 02:38:00 GMT 2010


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...

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 ) } }\

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?



More information about the Gcc-patches mailing list