Code Monkey home page Code Monkey logo

macports-legacy-support's Introduction

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

Header File Feature Max Version Needing Feature
assert.h Adds C11 static_assert definition OSX10.10
cmath Adds the same functions as those provided by the herein math.h, in namespace std::. see math.h
copyfile.h Wraps copyfile_state_get to support COPYFILE_STATE_COPIED OSX10.5
dirent.h Adds fdopendir function. OSX10.9
os/lock.h Adds os_unfair_lock_lock, os_unfair_lock_trylock, and os_unfair_lock_unlock functions OSX10.11
math.h Adds declaration of various long long methods (OSX10.6) and __sincos (macOS10.8) OSX10.6(8), GCC 8
netdb.h Adds declaration of AI_NUMERICSERV OSX10.5
pthread.h Adds PTHREAD_RWLOCK_INITIALIZER OSX10.4
Adds pthread_setname_np function OSX10.5
stdio.h Adds dprintf, getline, getdelim, open_memstream, and fmemopen functions OSX10.6, OSX10.12 (open_memstream)
stdlib.h Adds posix_memalign functional replacement, and wraps realpath to accept a NULL buffer argument OSX10.5
Adds arc4random_uniform and arc4random_buf functions OSX10.6
string.h Adds stpncpy, strnlen, strndup and memmem functions OSX10.6
strings.h Adds fls,flsl,ffsl(OSX10.4) and flsll,ffsll(macOS10.8) functions OSX10.4(8)
time.h Adds functions clock_gettime(macOS10.11) and timespec_get(macOS10.14). Defines TIME_UTC (macOS10.14). Declares asctime_r, ctime_r, gmtime_r, and localtime_r functions that are otherwise hidden in the presence of _ANSI_SOURCE, _POSIX_C_SOURCE, or _XOPEN_SOURCE (OSX10.4) OSX10.4(11,14)
wchar.h Adds wcsdup, wcsnlen, wcpcpy, wcpncpy, wcscasecmp, and wcsncasecmp functions OSX10.6
mach/machine.h Adds missing machine definitions OSX10.13
net/if.h Adds include sys/socket.h, expected on current macOS systems OSX10.8
xlocale/_wchar.h Adds wcscasecmp_l, wcsncasecmp_l functions OSX10.6
sys/aio.h Adjusts includes and defines to match SDK 10.5+ OSX10.4
sys/fcntl.h Adds missing O_CLOEXEC, AT_FDCWD, AT_EACCESS, AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW, and AT_REMOVEDIR definitions as required (?)
Adds openat function OSX10.9
sys/fsgetpath.h Adds missing utimensat, fsgetpath and setattrlistat functions OSX10.12
sys/mman.h Adds missing MAP_ANONYMOUS definition OSX10.10
sys/stdio.h Adds renameat function OSX10.9
sys/stat.h Adds fchmodat, fstatat, fstatat64 (if required, and on 10.5+), and mkdirat functions OSX10.9
Adds lchmod function OSX10.4
sys/random.h Adds getentropy function OSX10.11
sys/socket.h Corrects CMSG_DATA definition OSX10.5
sys/time.h Adds lutimes function OSX10.4
sys/types.h Adds definitions for u_char, u_short, u_int, u_long, ushort, and uint types that can be exposed via _DARWIN_C_SOURCE OSX10.4
sys/unistd.h Adds getattrlistat, readlinkat, faccessat, fchownat, linkat, symlinkat, and unlinkat functions OSX10.9
Wraps sysconf to support _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN OSX10.4
Wraps sysconf to support _SC_PHYS_PAGES OSX10.10
uuid/uuid.h Adds typedef of uuid_string_t OSX10.5
CoreFoundation/CoreFoundation.h Adds CFPropertyListCreateWithStream function OSX10.5
OpenGL/gliDispatch.h Wraps gliDispatch.h to prevent including glext.h and thereby match behaviour of newer systems. OSX10.6
TargetConditionals.h Adds definitions for TARGET_CPU_ARM, TARGET_CPU_ARM64, TARGET_OS_SIMULATOR, TARGET_OS_IOS, TARGET_OS_TV, TARGET_OS_WATCH and TARGET_OS_OSX if needed. OSX10.10
- Adds __bzero library symbol OSX10.5
- Adds _dirfd library symbol OSX10.7
- Adds _fstatat$INODE64 library symbol OSX10.9

For information on building this library outside MacPorts, see BUILDING.txt.

macports-legacy-support's People

Contributors

kencu avatar cjones051073 avatar marcuscalhoun-lopez avatar ionic avatar fhgwright avatar ccorn avatar mascguy avatar evanmiller avatar michaelld avatar raforg avatar catap avatar dpogue avatar sideeffect42 avatar elelay avatar jmroot avatar barracuda156 avatar miniupnp avatar krackers avatar kzc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.