[145278] trunk/dports/devel/cctools

jeremyhu at macports.org jeremyhu at macports.org
Sat Jan 30 16:21:33 PST 2016


Revision: 145278
          https://trac.macports.org/changeset/145278
Author:   jeremyhu at macports.org
Date:     2016-01-30 16:21:33 -0800 (Sat, 30 Jan 2016)
Log Message:
-----------
cctools: Better support large static archives

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

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

Modified: trunk/dports/devel/cctools/Portfile
===================================================================
--- trunk/dports/devel/cctools/Portfile	2016-01-30 21:45:27 UTC (rev 145277)
+++ trunk/dports/devel/cctools/Portfile	2016-01-31 00:21:33 UTC (rev 145278)
@@ -5,7 +5,7 @@
 name                    cctools
 # Xcode 7.0
 version                 877.5
-revision                1
+revision                2
 set ld64_version        253.3
 categories              devel
 platforms               darwin
@@ -37,6 +37,7 @@
     PR-37520.patch \
     cctools-839-static-dis_info.patch \
     PR-12400897.patch \
+    PR-24031030.patch \
     cctools-862-prunetrie.patch \
     not-clang.patch \
     cctools-877-no-lto.patch

Added: trunk/dports/devel/cctools/files/PR-24031030.patch
===================================================================
--- trunk/dports/devel/cctools/files/PR-24031030.patch	                        (rev 0)
+++ trunk/dports/devel/cctools/files/PR-24031030.patch	2016-01-31 00:21:33 UTC (rev 145278)
@@ -0,0 +1,64 @@
+diff --git a/include/stuff/ofile.h b/include/stuff/ofile.h
+index e6721f8..04e4ead 100644
+--- include/stuff/ofile.h
++++ include/stuff/ofile.h
+@@ -92,7 +92,7 @@ struct ofile {
+ 
+     /* If this structure is currently referencing an archive member or an object
+        file that is an archive member these are valid and filled in. */
+-    uint32_t member_offset;         /* logical offset to the member starting */
++    uint64_t member_offset;         /* logical offset to the member starting */
+     char *member_addr;      	    /* pointer to the member contents */
+     uint32_t member_size;           /* actual size of the member (not rounded)*/
+     struct ar_hdr *member_ar_hdr;   /* pointer to the ar_hdr for this member */
+diff --git a/misc/libtool.c b/misc/libtool.c
+index 57a0a43..f430350 100644
+--- misc/libtool.c
++++ misc/libtool.c
+@@ -194,7 +194,7 @@ struct arch {
+ };
+ 
+ struct member {
+-    uint32_t offset;	    	    /* current working offset and final offset*/
++    uint64_t offset;	    	    /* current working offset and final offset*/
+     struct ar_hdr ar_hdr;	    /* the archive header for this member */
+     char null_byte;		    /* space to write '\0' for ar_hdr */
+     char *object_addr;		    /* the address of the object file */
+@@ -225,7 +225,7 @@ struct member {
+     char	  *input_base_name;     /* the base name in the input file */
+     uint32_t  input_base_name_size;	/* the size of the base name */
+     struct ar_hdr *input_ar_hdr;
+-    uint32_t      input_member_offset;  /* if from a thin archive */
++    uint64_t      input_member_offset;  /* if from a thin archive */
+ };
+ 
+ static void usage(
+@@ -2272,8 +2272,8 @@ create_library(
+ char *output,
+ struct ofile *ofile)
+ {
+-    uint32_t i, j, k, pad, *time_offsets;
+-    uint64_t library_size, offset;
++    uint32_t i, j, k, pad;
++    uint64_t library_size, offset, *time_offsets;
+     enum byte_sex target_byte_sex;
+     char *library, *p, *flush_start;
+     kern_return_t r;
+@@ -2432,7 +2432,7 @@ struct ofile *ofile)
+ 	     * contents archive header's ar_date fields.  In this case we just
+ 	     * have one since this is a thin file (non-fat) file.
+ 	     */
+-	    time_offsets = allocate(1 * sizeof(uint32_t));
++	    time_offsets = allocate(1 * sizeof(uint64_t));
+ 	    /*
+ 	     * Calculate the offset to the archive header's time field for the
+ 	     * table of contents.
+@@ -2597,7 +2597,7 @@ fail_to_update_toc_in_place:
+ 	 * The time_offsets array records the offsets to the table of conternts
+ 	 * archive header's ar_date fields.
+ 	 */
+-	time_offsets = allocate(narchs * sizeof(uint32_t));
++	time_offsets = allocate(narchs * sizeof(uint64_t));
+ 
+ 	/*
+ 	 * Now put each arch in the buffer.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160130/77d6a8d7/attachment.html>


More information about the macports-changes mailing list