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.
 | 
