Revision: 145278 https://trac.macports.org/changeset/145278 Author: jeremyhu@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.
participants (1)
-
jeremyhu@macports.org