246 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			246 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | # MODIFIED
 | ||
|  | 
 | ||
|  | this is a modified version of macports-legacy-support which removes APSL-licensed files. | ||
|  | 
 | ||
|  | # MacPorts Support for Legacy OSX Versions
 | ||
|  | 
 | ||
|  | Installs wrapper headers and library functions that add common | ||
|  | functions missing in various older OSX releases to bring them | ||
|  | approximately up to current expected standards. | ||
|  | 
 | ||
|  | Three different libraries are provided | ||
|  | 
 | ||
|  |  - libMacportsLegacySupport.a      - A static library with the missing functions for the given OS. | ||
|  |  - libMacportsLegacySupport.dylib  - A dynamic library with the missing functions for the given OS. | ||
|  |  - libMacportsLegacySystem.B.dylib - Similar to libMacportsLegacySupport.dylib but in addition re-exports the symbols from libSystem.B.dylib. | ||
|  | 
 | ||
|  | To use this library within [MacPorts](https://github.com/macports) | ||
|  | add the `legacysupport` PortGroup to the Portfile. This will add the | ||
|  | required include paths and libraries to allow the library to do it's | ||
|  | magic with most build systems. | ||
|  | 
 | ||
|  | Wrapped headers and replaced functions are: | ||
|  | 
 | ||
|  | <table> | ||
|  |   <tr> | ||
|  |     <th>Header File</th> | ||
|  |     <th>Feature</th> | ||
|  |     <th>Max Version Needing Feature</th> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>assert.h</code></td> | ||
|  |     <td>Adds C11 <code>static_assert</code> definition</td> | ||
|  |     <td>OSX10.10</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>cmath</code></td> | ||
|  |     <td>Adds the same functions as those provided by the herein <code>math.h</code>, | ||
|  |         in namespace <code>std::</code>.</td> | ||
|  |     <td>see <code>math.h</code></td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>copyfile.h</code></td> | ||
|  |     <td>Wraps <code>copyfile_state_get</code> to support <code>COPYFILE_STATE_COPIED</code></td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>dirent.h</code></td> | ||
|  |     <td>Adds <code>fdopendir</code> function. | ||
|  |     <td>OSX10.9</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>os/lock.h</code></td> | ||
|  |     <td>Adds <code>os_unfair_lock_lock</code>, <code>os_unfair_lock_trylock</code>, and <code>os_unfair_lock_unlock</code> functions</td> | ||
|  |     <td>OSX10.11</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>math.h</code></td> | ||
|  |     <td>Adds declaration of various <code>long long</code> methods (OSX10.6) and <code>__sincos</code> (macOS10.8)</td> | ||
|  |     <td>OSX10.6(8), GCC 8</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>netdb.h</code></td> | ||
|  |     <td>Adds declaration of <code>AI_NUMERICSERV</code></td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td rowspan="2"><code>pthread.h</code></td> | ||
|  |     <td>Adds <code>PTHREAD_RWLOCK_INITIALIZER</code></td> | ||
|  |     <td>OSX10.4</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td>Adds <code>pthread_setname_np</code> function</td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>stdio.h</code></td> | ||
|  |     <td>Adds <code>dprintf</code>, <code>getline</code>, <code>getdelim</code>, | ||
|  |         <code>open_memstream</code>, and <code>fmemopen</code> functions</td> | ||
|  |     <td>OSX10.6, OSX10.12 (open_memstream)</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td rowspan="2"><code>stdlib.h</code></td> | ||
|  |     <td>Adds <code>posix_memalign</code> functional replacement, and wraps <code>realpath</code> | ||
|  |         to accept a <code>NULL</code> buffer argument</td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td>Adds <code>arc4random_uniform</code> and <code>arc4random_buf</code> functions</td> | ||
|  |     <td>OSX10.6</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>string.h</code></td> | ||
|  |     <td>Adds <code>stpncpy</code>, <code>strnlen</code>, <code>strndup</code> and <code>memmem</code> functions</td> | ||
|  |     <td>OSX10.6</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>strings.h</code></td> | ||
|  |     <td>Adds <code>fls,flsl,ffsl</code>(OSX10.4) and <code>flsll,ffsll</code>(macOS10.8) functions</td> | ||
|  |     <td>OSX10.4(8)</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>time.h</code></td> | ||
|  |     <td>Adds functions <code>clock_gettime</code>(macOS10.11) and <code>timespec_get</code>(macOS10.14). Defines <code>TIME_UTC</code> (macOS10.14). Declares <code>asctime_r</code>, <code>ctime_r</code>, <code>gmtime_r</code>, and <code>localtime_r</code> functions that are otherwise hidden in the presence of <code>_ANSI_SOURCE</code>, <code>_POSIX_C_SOURCE</code>, or <code>_XOPEN_SOURCE</code> (OSX10.4)</td> | ||
|  |     <td>OSX10.4(11,14)</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>wchar.h</code></td> | ||
|  |     <td>Adds <code>wcsdup</code>, <code>wcsnlen</code>, <code>wcpcpy</code>, | ||
|  |         <code>wcpncpy</code>, <code>wcscasecmp</code>, and <code>wcsncasecmp</code> | ||
|  |         functions</td> | ||
|  |     <td>OSX10.6</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>mach/machine.h</code></td> | ||
|  |     <td>Adds missing machine definitions</td> | ||
|  |     <td>OSX10.13</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>net/if.h</code></td> | ||
|  |     <td>Adds include <code>sys/socket.h</code>, expected on current macOS systems</td> | ||
|  |     <td>OSX10.8</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>xlocale/_wchar.h</code></td> | ||
|  |     <td>Adds <code>wcscasecmp_l</code>, <code>wcsncasecmp_l</code> functions</td> | ||
|  |     <td>OSX10.6</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/aio.h</code></td> | ||
|  |     <td>Adjusts includes and defines to match SDK 10.5+</td> | ||
|  |     <td>OSX10.4</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td rowspan="2"><code>sys/fcntl.h</code></td> | ||
|  |     <td>Adds missing <code>O_CLOEXEC</code>, <code>AT_FDCWD</code>, <code>AT_EACCESS</code>, | ||
|  |         <code>AT_SYMLINK_NOFOLLOW</code>, <code>AT_SYMLINK_FOLLOW</code>, and | ||
|  |         <code>AT_REMOVEDIR</code> definitions</td> | ||
|  |     <td>as required (?)</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td>Adds <code>openat</code> function</td> | ||
|  |     <td>OSX10.9</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/fsgetpath.h</code></td> | ||
|  |     <td>Adds missing <code>utimensat</code>, <code>fsgetpath</code> and <code>setattrlistat</code> functions</td> | ||
|  |     <td>OSX10.12</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/mman.h</code></td> | ||
|  |     <td>Adds missing <code>MAP_ANONYMOUS</code> definition</td> | ||
|  |     <td>OSX10.10</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/stdio.h</code></td> | ||
|  |     <td>Adds <code>renameat</code> function</td> | ||
|  |     <td>OSX10.9</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td rowspan="2"><code>sys/stat.h</code></td> | ||
|  |     <td>Adds <code>fchmodat</code>, <code>fstatat</code>, <code>fstatat64</code> (if required, and on 10.5+), | ||
|  |         and <code>mkdirat</code> functions</td> | ||
|  |     <td>OSX10.9</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td>Adds <code>lchmod</code> function</td> | ||
|  |     <td>OSX10.4</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/random.h</code></td> | ||
|  |     <td>Adds <code>getentropy</code> function</td> | ||
|  |     <td>OSX10.11</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/socket.h</code></td> | ||
|  |     <td>Corrects <code>CMSG_DATA</code> definition</td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/time.h</code></td> | ||
|  |     <td>Adds <code>lutimes</code> function</td> | ||
|  |     <td>OSX10.4</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>sys/types.h</code></td> | ||
|  |     <td>Adds definitions for <code>u_char</code>, <code>u_short</code>, <code>u_int</code>, <code>u_long</code>, <code>ushort</code>, and <code>uint</code> types that can be exposed via <code>_DARWIN_C_SOURCE</code></td> | ||
|  |     <td>OSX10.4</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td rowspan="3"><code>sys/unistd.h</code></td> | ||
|  |     <td>Adds <code>getattrlistat</code>, <code>readlinkat</code>, <code>faccessat</code>, | ||
|  |         <code>fchownat</code>, <code>linkat</code>, <code>symlinkat</code>, | ||
|  |         and <code>unlinkat</code> functions</td> | ||
|  |     <td>OSX10.9</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td>Wraps <code>sysconf</code> to support <code>_SC_NPROCESSORS_CONF</code> and | ||
|  |         <code>_SC_NPROCESSORS_ONLN</code></td> | ||
|  |     <td>OSX10.4</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td>Wraps <code>sysconf</code> to support <code>_SC_PHYS_PAGES</code></td> | ||
|  |     <td>OSX10.10</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>uuid/uuid.h</code></td> | ||
|  |     <td>Adds typedef of <code>uuid_string_t</code></td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>CoreFoundation/CoreFoundation.h</code></td> | ||
|  |     <td>Adds <code>CFPropertyListCreateWithStream</code> function</td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>OpenGL/gliDispatch.h</code></td> | ||
|  |     <td>Wraps <code>gliDispatch.h</code> to prevent including | ||
|  |         <code>glext.h</code> and thereby match behaviour of newer systems.</td> | ||
|  |     <td>OSX10.6</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>TargetConditionals.h</code></td> | ||
|  |     <td>Adds definitions for <code>TARGET_CPU_ARM</code>, <code>TARGET_CPU_ARM64</code>, | ||
|  |         <code>TARGET_OS_SIMULATOR</code>, <code>TARGET_OS_IOS</code>, <code>TARGET_OS_TV</code>, | ||
|  |         <code>TARGET_OS_WATCH</code> and <code>TARGET_OS_OSX</code> if needed.</td> | ||
|  |     <td>OSX10.10</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>-</code></td> | ||
|  |     <td>Adds <code>__bzero</code> library symbol</td> | ||
|  |     <td>OSX10.5</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>-</code></td> | ||
|  |     <td>Adds <code>_dirfd</code> library symbol</td> | ||
|  |     <td>OSX10.7</td> | ||
|  |   </tr> | ||
|  |   <tr> | ||
|  |     <td><code>-</code></td> | ||
|  |     <td>Adds <code>_fstatat$INODE64</code> library symbol</td> | ||
|  |     <td>OSX10.9</td> | ||
|  |   </tr> | ||
|  | </table> | ||
|  | 
 | ||
|  | For information on building this library outside MacPorts, see BUILDING.txt. |