-
Notifications
You must be signed in to change notification settings - Fork 0
mirror of https://dyncall.org
License
nebulastream/dyncall
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
dyncall - A Generic Dynamic FFI package ======================================= dyncall is a low-level toolkit providing a portable abstraction for handling native code dynamically at run time. It comprises three independent components, available as C libraries, namely: - 'dyncall' for making function calls, - 'dyncallback' or writing generic callback handlers, and - 'dynload' for loading code. The package provides abstractions to the Application Binary Interface of various hardware platforms such as x86, AMD64, ARM32/64, PowerPC32/64, MIPS32/64 and SPARC32/64. Our releases are thoroughly tested across all supported platforms using a flexible test suite. A typical application for the use of dyncall is the back-end of a FFI (foreign function interface) for scripting languages to connect with the C/C++ world. The binary footprint of the package libraries before linking is approx. 10-60 kb, depending on the platform. Comprehensive documentation is available. Building the libraries ---------------------- Prequisites: - C compiler such as gcc, clang, sunpro or msvc. - Assembler such as gas (gnu/apple), llvm as, fbe, nasm or masm. - Build system such as 'shell/make', cmake, nmake (windows) or mk (plan9). Supported Architectures and ABIs: --------------------------------- - x86 32/64-bit (cdecl, fastcall, stdcall, C++ this calls, syscalls, plan9) - ARM AArch32/64 (32: ARM/Thumb mode, v4t-v7, oabi/eabi, soft/hardfloat ABIs; 64: AAPCS64) - MIPS 32/64-bit (o32, n64, eabi, with o32 and n64 for soft- and hardfloat) - PowerPC 32/64-bit (32: Mac OS X, System V; 64: System V little and big endian ELF ABI) - Sparc 32/64-bit (v7/8 and v9) Supported Operating Systems: ---------------------------- - Android - *BSD - Haiku - iOS - Linux - Mac OS X - Microsoft Windows - Minix - Nintendo DS Homebrew - Plan9 / 9front - Playstation Portable Homebrew - ReactOS - Solaris Building the libraries ---------------------- Using configure shell script and GNU/BSD/Sun make system. $ ./configure $ make $ make install Testing: $ make tests $ make run-tests Build 'out-of-source' (not for nmake or mk based builds) -------------------------------------------------------- $ cd <build_dir> $ <src_dir>/configure --prefix=<install_dir> $ make $ sudo make install Building using CMake -------------------- $ cmake $ make $ sudo make install Building on Windows ------------------- See doc/README.Windows Platform-specific build details ------------------------------- See doc/README.* Building the manual ------------------- Make sure pdflatex is installed and run $ make docs Please refer to http://www.dyncall.org, dyncall(3), dyncallback(3), dynload(3), the dyncall manual and platform-specific READMEs under doc/ for more information.
Releases
No releases published
Packages 0
No packages published