-
Notifications
You must be signed in to change notification settings - Fork 12
mirror of http://hg.dyncall.org/pub/dyncall/dyncall
License
zhuomingliang/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, ARM32/64, PowerPCC32/64, MIPS32/64 and SPARC32/64. Our releases are thoroughly tested 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 is approx. 10-20 kb, depending on the platform. A test suite and comprehensive documentation is available. Building the libraries ---------------------- Prequisites: - C compiler such as gcc, clang, sunpro or msvc. - Assembler such as gas (gnu/apple), fbe 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) - 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) NOTE: Callback support is currently available on x86-32/64, arm32 softfloat ABIs, arm64, PPC64 and PPC32 Linux/OS X. 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' --------------------- $ 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), the dyncall manual and platform-specific READMEs under doc/ for more information.
Releases
No releases published
Packages 0
No packages published