[135226] trunk/dports/devel/ld64

jeremyhu at macports.org jeremyhu at macports.org
Sun Apr 19 13:06:12 PDT 2015


Revision: 135226
          https://trac.macports.org/changeset/135226
Author:   jeremyhu at macports.org
Date:     2015-04-19 13:06:11 -0700 (Sun, 19 Apr 2015)
Log Message:
-----------
ld64: Fix a few Leopard link issues, and prefer llvm-3.3 for now on Leopard since 3.4 has issues compiling with Leopard's gcc-4.2

Modified Paths:
--------------
    trunk/dports/devel/ld64/Portfile

Added Paths:
-----------
    trunk/dports/devel/ld64/files/PR-12057707.patch
    trunk/dports/devel/ld64/files/PR-13282463.patch

Modified: trunk/dports/devel/ld64/Portfile
===================================================================
--- trunk/dports/devel/ld64/Portfile	2015-04-19 19:55:15 UTC (rev 135225)
+++ trunk/dports/devel/ld64/Portfile	2015-04-19 20:06:11 UTC (rev 135226)
@@ -55,7 +55,7 @@
     # XCode 4.2
     # This was the last ld64 release that supported linking ppc executables.
     version             127.2
-    revision            1
+    revision            2
 
     checksums           rmd160  8ee709341549a1944732daef6ebab7ef1acfcc6e \
                         sha256  97b75547b2bd761306ab3e15ae297f01e7ab9760b922bc657f4ef72e4e052142
@@ -72,13 +72,15 @@
         ld64-127-ppc.patch \
         ld64-97-no-Availability.h.patch \
         PR-12249048.patch \
+        PR-12057707.patch \
+        PR-13282463.patch \
         ld64-ppc-9610466.patch
 }
 
 subport ld64-136 {
     # XCode 4.6
     version             136
-    revision            1
+    revision            2
 
     checksums           rmd160  4a2930ccdd398b63a108810e90293ab96dc154a0 \
                         sha256  99d6c4acb6d4cdf45772951dd2308222aa966763170137459a9d276674645d9e
@@ -91,6 +93,7 @@
         ld64-133-no-CrashReporterClient.h.patch \
         ld64-134-missing-include.patch \
         ld64-136-i386-badAddress.patch \
+        PR-13282463.patch \
         ld64-ppc-9610466.patch
 
     if {${configure.cxx_stdlib} eq "libstdc++"} {
@@ -202,11 +205,13 @@
     if {![variant_isset llvm33] && ![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37]} {
         if {${os.major} >= 13} {
             default_variants +llvm35
+        } elseif {${os.major} >= 10} {
+            default_variants +llvm34
         } elseif {${os.major} >= 9} {
-            default_variants +llvm34
+            default_variants +llvm33
         }
 
-        if {![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37] && ${os.major} >= 9} {
+        if {![variant_isset llvm33] && ![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37] && ${os.major} >= 9} {
             ui_error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
             return -code error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
         }

Added: trunk/dports/devel/ld64/files/PR-12057707.patch
===================================================================
--- trunk/dports/devel/ld64/files/PR-12057707.patch	                        (rev 0)
+++ trunk/dports/devel/ld64/files/PR-12057707.patch	2015-04-19 20:06:11 UTC (rev 135226)
@@ -0,0 +1,12 @@
+--- src/ld/OutputFile.cpp
++++ src/ld/OutputFile.cpp
+@@ -2983,7 +2983,8 @@ void OutputFile::addClassicRelocs(ld::Internal& state, ld::Internal::FinalSectio
+ 					// reference to global weak def needs weak binding in dynamic images
+ 					if ( (target->combine() == ld::Atom::combineByName) 
+ 						&& (target->definition() == ld::Atom::definitionRegular)
+-						&& (_options.outputKind() != Options::kStaticExecutable) ) {
++						&& (_options.outputKind() != Options::kStaticExecutable)
++						&& (_options.outputKind() != Options::kPreload) ) {
+ 						needsExternReloc = true;
+ 					}
+ 					else if ( _options.outputKind() == Options::kDynamicExecutable ) {

Added: trunk/dports/devel/ld64/files/PR-13282463.patch
===================================================================
--- trunk/dports/devel/ld64/files/PR-13282463.patch	                        (rev 0)
+++ trunk/dports/devel/ld64/files/PR-13282463.patch	2015-04-19 20:06:11 UTC (rev 135226)
@@ -0,0 +1,25 @@
+--- src/ld/OutputFile.cpp
++++ src/ld/OutputFile.cpp
+@@ -2984,7 +2984,8 @@ void OutputFile::addClassicRelocs(ld::Internal& state, ld::Internal::FinalSectio
+ 					if ( (target->combine() == ld::Atom::combineByName) 
+ 						&& (target->definition() == ld::Atom::definitionRegular)
+ 						&& (_options.outputKind() != Options::kStaticExecutable)
+-						&& (_options.outputKind() != Options::kPreload) ) {
++						&& (_options.outputKind() != Options::kPreload) 
++						&& (atom != target) ) {
+ 						needsExternReloc = true;
+ 					}
+ 					else if ( _options.outputKind() == Options::kDynamicExecutable ) {
+--- src/ld/parsers/macho_relocatable_file.cpp
++++ src/ld/parsers/macho_relocatable_file.cpp
+@@ -2545,6 +2545,10 @@ void Parser<A>::addFixups(const SourceLocation& src, ld::Fixup::Kind setKind, co
+ 			// backing string in CFStrings should always be direct
+ 			addFixup(src, cl, firstKind, target.atom);
+ 		}
++		else if ( (src.atom == target.atom) && (target.atom->combine() == ld::Atom::combineByName) ) {
++			// reference to self should always be direct
++			addFixup(src, cl, firstKind, target.atom);
++		}
+ 		else {
+ 			// change direct fixup to by-name fixup
+ 			addFixup(src, cl, firstKind, false, target.atom->name());
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150419/5aa846c0/attachment.html>


More information about the macports-changes mailing list