[91495] trunk/dports/devel/cctools

jeremyhu at macports.org jeremyhu at macports.org
Tue Apr 3 10:14:26 PDT 2012


Revision: 91495
          https://trac.macports.org/changeset/91495
Author:   jeremyhu at macports.org
Date:     2012-04-03 10:14:26 -0700 (Tue, 03 Apr 2012)
Log Message:
-----------
cctools: Build fixes for all supported platforms

The previous revision only built for me on Snow Leopard.  Leopard still
does not build, but I will look into that in a subsequent change.

revbump even for versions that weren't building since they may have
built at some point.

Don't install libsystem binaries as there's no way they can be used
or needed.

Simplify the Portfile.

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

Added Paths:
-----------
    trunk/dports/devel/cctools/files/PR-11136237.patch

Modified: trunk/dports/devel/cctools/Portfile
===================================================================
--- trunk/dports/devel/cctools/Portfile	2012-04-03 16:16:55 UTC (rev 91494)
+++ trunk/dports/devel/cctools/Portfile	2012-04-03 17:14:26 UTC (rev 91495)
@@ -3,9 +3,11 @@
 PortSystem              1.0
 name                    cctools
 version                 822
+revision                1
+set llvm_version        3.0
 categories              devel
 platforms               darwin
-maintainers             mfeiri openmaintainer
+maintainers             mfeiri jeremyhu openmaintainer
 license                 {APSL-2.0 GPL-2+}
 description             Compiler Tools for Mac OS X and Darwin
 long_description        A set of essential tools to support development \
@@ -20,12 +22,13 @@
 
 depends_lib             port:cctools-headers
 depends_build           path:lib/libprunetrie.a:ld64
-patchfiles              patch-misc_libtool.c.diff patch-misc_Makefile.diff patch-libmacho_Makefile.diff
+depends_run             port:llvm-${llvm_version}
 
+patchfiles              PR-11136237.patch
+
 use_configure           no
 destroot.args           DSTROOT=${destroot}${prefix} RC_ProjectSourceVersion=${version}
 
-
 if {${os.major} < 9} {
     pre-fetch {
         ui_error "${name} requires Mac OS X 10.5 or later."
@@ -33,117 +36,90 @@
     }
 }
 
-platform darwin 9 {
-    version             698.1
-    distname            cctools-${version}
-    checksums           rmd160  898c7b46869d4989c115420912fdd8d96ae923d3 \
-                        sha256  383f1c0c78a2b3efdfdf7ce01adb7e2f8ee9985164dba6ab1c0fae800a211cec
-    patchfiles          patch-misc_libtool.c.diff patch-ld_ld.c.diff
+post-patch {
+    # We don't want to build cctools ld.  We want to use ld64
+    reinplace "/^SUBDIRS_32/s/ld//" ${worksrcpath}/Makefile
 
-    build {}
+    # Use our chosen version of llvm-mc
+    reinplace "s:\"llvm-mc\":\"llvm-mc-mp-${llvm_version}\":" ${worksrcpath}/as/driver.c
 
-    post-destroot {
+    foreach file [glob ${worksrcpath}/{*/,}Makefile] {
+        reinplace "s:/usr/local:${prefix}:g" ${file}
+        reinplace "s:/usr:${prefix}:g" ${file}
+        reinplace "s:${prefix}/efi:${prefix}:g" ${file}
+        reinplace "s:${prefix}/man:${prefix}/share/man:g" ${file}
+    }
+}
 
-        foreach x "bin include lib libexec" {
-            file delete -force ${destroot}${prefix}/${x}
-            file rename -force ${destroot}${prefix}/usr/local/${x} ${destroot}${prefix}/
-        }
+use_configure   no
+use_parallel_build  yes
 
-        file delete -force ${destroot}${prefix}/share
-        file rename -force ${destroot}${prefix}/usr/share ${destroot}${prefix}/
+build.target    all
 
-        file rename -force ${destroot}${prefix}/usr/local/efi/bin/mtoc ${destroot}${prefix}/bin/
-        file rename -force ${destroot}${prefix}/usr/local/efi/share/man/man1/mtoc.1 ${destroot}${prefix}/share/man/man1/
+pre-build {
+    build.args-append \
+        TRIE=-DTRIE_SUPPORT \
+        USE_DEPENDENCY_FILE=NO \
+        BUILD_DYLIBS=NO \
+        LTO=-DLTO_SUPPORT \
+        CC="${configure.cc}" \
+        CXX="${configure.cxx}" \
+        RC_CFLAGS="[get_canonical_archflags] `llvm-config-mp-${llvm_version} --cflags`" \
+        LLVM_MC="llvm-mc-mp-${llvm_version}"
+}
 
-        foreach x [glob ${destroot}${prefix}/usr/bin/*] {
-            file rename -force ${x} ${destroot}${prefix}/bin/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/local/man/man1/*] {
-            file rename -force ${x} ${destroot}${prefix}/share/man/man1/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/local/man/man3/*] {
-            file rename -force ${x} ${destroot}${prefix}/share/man/man3/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/libexec/gcc/darwin/*] {
-            file rename -force ${x} ${destroot}${prefix}/libexec/gcc/darwin/
-        }
-
-        file delete -force ${destroot}${prefix}/usr
-        file delete -force ${destroot}${prefix}/Developer
-    }
+pre-destroot {
+    destroot.args-append \
+        TRIE=-DTRIE_SUPPORT \
+        USE_DEPENDENCY_FILE=NO \
+        BUILD_DYLIBS=NO \
+        LTO=-DLTO_SUPPORT \
+        CC="${configure.cc}" \
+        CXX="${configure.cxx}" \
+        RC_CFLAGS="[get_canonical_archflags] `llvm-config-mp-${llvm_version} --cflags`" \
+        LLVM_MC="llvm-mc-mp-${llvm_version}"
 }
 
-platform darwin 10 {
-    version             809
-    distname            cctools-${version}
-    checksums           rmd160  f433124035ac0ef403bdc6edec087bdedd0b4375 \
-                        sha256  03ba62749b843b131c7304a044a98c6ffacd65b1399b921d69add0375f79d8ad
+platform macosx {
+    build.args-append RC_OS="macos"
+    destroot.args-append RC_OS="macos"
 
-    post-destroot {
-        
-        foreach x "bin include lib libexec" {
-            file delete -force ${destroot}${prefix}/${x}
-            file rename -force ${destroot}${prefix}/usr/local/${x} ${destroot}${prefix}/
-        }
-        
-        file delete -force ${destroot}${prefix}/share
-        file rename -force ${destroot}${prefix}/usr/share ${destroot}${prefix}/
-        
-        file rename -force ${destroot}${prefix}/usr/local/efi/bin/mtoc ${destroot}${prefix}/bin/
-        file rename -force ${destroot}${prefix}/usr/local/efi/share/man/man1/mtoc.1 ${destroot}${prefix}/share/man/man1/
-        
-        foreach x [glob ${destroot}${prefix}/usr/bin/*] {
-            file rename -force ${x} ${destroot}${prefix}/bin/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/local/man/man1/*] {
-            file rename -force ${x} ${destroot}${prefix}/share/man/man1/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/local/man/man3/*] {
-            file rename -force ${x} ${destroot}${prefix}/share/man/man3/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/lib/system/*] {
-            file rename -force ${x} ${destroot}${prefix}/lib/system/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/libexec/as/*] {
-            file rename -force ${x} ${destroot}${prefix}/libexec/as/
-        }
-    
-        file delete -force ${destroot}${prefix}/usr
+    if {${os.major} < 10} {
+        # This doesn't build for me on Leopard.  We should bump to at least version 795
+        # which was included in XCode 3.2.6 and supports Tiger and Leopard targets.
+        version             698.1
+        revision            1
+        distname            cctools-${version}
+        checksums           rmd160  898c7b46869d4989c115420912fdd8d96ae923d3 \
+                            sha256  383f1c0c78a2b3efdfdf7ce01adb7e2f8ee9985164dba6ab1c0fae800a211cec
+        patchfiles          patch-misc_libtool.c.diff patch-ld_ld.c.diff
+    } elseif {${os.major} == 10} {
+        version             809
+        revision            1
+        distname            cctools-${version}
+        checksums           rmd160  f433124035ac0ef403bdc6edec087bdedd0b4375 \
+                            sha256  03ba62749b843b131c7304a044a98c6ffacd65b1399b921d69add0375f79d8ad
     }
+
+    # This will be required if building newer cctools on older OS versions
+    #if {${os.major} < 10} {
+    #    build.args-append \
+    #        OLD_LIBKLD=YES
+    #
+    #    destroot.args-append \
+    #        OLD_LIBKLD=YES
+    #}
 }
 
-platform darwin 11 {
-    post-destroot {
-        
-        foreach x "bin include lib libexec" {
-            file delete -force ${destroot}${prefix}/${x}
-            file rename -force ${destroot}${prefix}/usr/local/${x} ${destroot}${prefix}/
-        }
-        
-        file delete -force ${destroot}${prefix}/share
-        file rename -force ${destroot}${prefix}/usr/share ${destroot}${prefix}/
-        
-        file rename -force ${destroot}${prefix}/usr/local/efi/bin/mtoc ${destroot}${prefix}/bin/
-        file rename -force ${destroot}${prefix}/usr/local/efi/share/man/man1/mtoc.1 ${destroot}${prefix}/share/man/man1/
-        
-        foreach x [glob ${destroot}${prefix}/usr/bin/*] {
-            file rename -force ${x} ${destroot}${prefix}/bin/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/local/man/man1/*] {
-            file rename -force ${x} ${destroot}${prefix}/share/man/man1/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/local/man/man3/*] {
-            file rename -force ${x} ${destroot}${prefix}/share/man/man3/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/lib/system/*] {
-            file rename -force ${x} ${destroot}${prefix}/lib/system/
-        }
-        foreach x [glob ${destroot}${prefix}/usr/libexec/as/*] {
-            file rename -force ${x} ${destroot}${prefix}/libexec/as/
-        }
-    
-        file delete -force ${destroot}${prefix}/usr
-    }
+destroot.target install_tools
+destroot.args-append DSTROOT=${destroot}
+post-destroot {
+    file delete -force ${destroot}${prefix}/OpenSourceLicenses
+    file delete -force ${destroot}${prefix}/OpenSourceVersions
+    file delete -force ${destroot}${prefix}/RelNotes
+
+    # Provided by port:cctools-headers
+    file delete -force ${destroot}${prefix}/include
 }
 
 livecheck.type          regex

Added: trunk/dports/devel/cctools/files/PR-11136237.patch
===================================================================
--- trunk/dports/devel/cctools/files/PR-11136237.patch	                        (rev 0)
+++ trunk/dports/devel/cctools/files/PR-11136237.patch	2012-04-03 17:14:26 UTC (rev 91495)
@@ -0,0 +1,122 @@
+379 % cvs diff -p as/{notes,as.h,dwarf2dbg.h,arm.c} otool/{notes,print_objc2_32bit.c,print_objc2_64bit.c}
+Index: as/as.h
+===================================================================
+RCS file: /cvs/root/cctools/as/as.h,v
+retrieving revision 1.10
+diff -p -r1.10 as.h
+*** as/as.h	2 Jul 2010 01:14:33 -0000	1.10
+--- as/as.h	28 Mar 2012 23:38:13 -0000
+*************** extern cpu_subtype_t archflag_cpusubtype
+*** 179,185 ****
+  extern char *specific_archflag;
+  
+  /* TRUE if the .subsections_via_symbols directive was seen */
+! int subsections_via_symbols;
+  
+  /* -I path options for .includes */
+  struct directory_stack {
+--- 179,185 ----
+  extern char *specific_archflag;
+  
+  /* TRUE if the .subsections_via_symbols directive was seen */
+! extern int subsections_via_symbols;
+  
+  /* -I path options for .includes */
+  struct directory_stack {
+Index: as/dwarf2dbg.h
+===================================================================
+RCS file: /cvs/root/cctools/as/dwarf2dbg.h,v
+retrieving revision 1.3
+diff -p -r1.3 dwarf2dbg.h
+*** as/dwarf2dbg.h	2 Jul 2010 01:14:33 -0000	1.3
+--- as/dwarf2dbg.h	28 Mar 2012 23:38:13 -0000
+*************** extern void dwarf2_emit_label (symbolS *
+*** 115,121 ****
+  /* True when we're supposed to set the basic block mark whenever a label
+     is seen.  Unless the target is doing Something Weird, just call 
+     dwarf2_emit_label.  */
+! bfd_boolean dwarf2_loc_mark_labels;
+  
+  extern void dwarf2_finish (void);
+  
+--- 115,121 ----
+  /* True when we're supposed to set the basic block mark whenever a label
+     is seen.  Unless the target is doing Something Weird, just call 
+     dwarf2_emit_label.  */
+! extern bfd_boolean dwarf2_loc_mark_labels;
+  
+  extern void dwarf2_finish (void);
+  
+Index: as/arm.c
+===================================================================
+RCS file: /cvs/root/cctools/as/arm.c,v
+retrieving revision 1.83
+diff -p -r1.83 arm.c
+*** as/arm.c	15 Mar 2012 21:29:46 -0000	1.83
+--- as/arm.c	28 Mar 2012 23:38:13 -0000
+*************** typedef enum {
+*** 151,158 ****
+  # define N_(String) (String)
+  
+  /* STUFF FROM gas/as.h */
+! #define COMMON
+! COMMON subsegT now_subseg;
+  
+  /* STUFF FROM gas/config/tc-arm.h */
+  #define ARM_FLAG_THUMB 		(1 << 0)	/* The symbol is a Thumb symbol rather than an Arm symbol.  */
+--- 151,157 ----
+  # define N_(String) (String)
+  
+  /* STUFF FROM gas/as.h */
+! extern subsegT now_subseg;
+  
+  /* STUFF FROM gas/config/tc-arm.h */
+  #define ARM_FLAG_THUMB 		(1 << 0)	/* The symbol is a Thumb symbol rather than an Arm symbol.  */
+Index: otool/print_objc2_32bit.c
+===================================================================
+RCS file: /cvs/root/cctools/otool/print_objc2_32bit.c,v
+retrieving revision 1.7
+diff -p -r1.7 print_objc2_32bit.c
+*** otool/print_objc2_32bit.c	31 Jul 2009 00:57:06 -0000	1.7
+--- otool/print_objc2_32bit.c	28 Mar 2012 23:38:13 -0000
+*************** struct category_t {
+*** 259,265 ****
+      uint32_t protocols;		/* struct protocol_list_t * (32-bit pointer) */
+      uint32_t instanceProperties; /* struct objc_property_list *
+  				    (32-bit pointer) */
+! } category_t;
+  
+  static
+  void
+--- 259,265 ----
+      uint32_t protocols;		/* struct protocol_list_t * (32-bit pointer) */
+      uint32_t instanceProperties; /* struct objc_property_list *
+  				    (32-bit pointer) */
+! };
+  
+  static
+  void
+Index: otool/print_objc2_64bit.c
+===================================================================
+RCS file: /cvs/root/cctools/otool/print_objc2_64bit.c,v
+retrieving revision 1.9
+diff -p -r1.9 print_objc2_64bit.c
+*** otool/print_objc2_64bit.c	31 Jul 2009 00:57:06 -0000	1.9
+--- otool/print_objc2_64bit.c	28 Mar 2012 23:38:13 -0000
+*************** struct category_t {
+*** 262,268 ****
+      uint64_t protocols;		/* struct protocol_list_t * (64-bit pointer) */
+      uint64_t instanceProperties; /* struct objc_property_list *
+  				    (64-bit pointer) */
+! } category_t;
+  
+  static
+  void
+--- 262,268 ----
+      uint64_t protocols;		/* struct protocol_list_t * (64-bit pointer) */
+      uint64_t instanceProperties; /* struct objc_property_list *
+  				    (64-bit pointer) */
+! };
+  
+  static
+  void
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120403/97acbddf/attachment-0001.html>


More information about the macports-changes mailing list