SkillAgentSearch skills...

Dyncall

The dyncall library encapsulates architecture-, OS- and compiler-specific function call semantics in a virtual bind argument parameters from left to right and then call interface allowing programmers to call C functions in a completely dynamic manner.

Install / Use

/learn @LWJGL-CI/Dyncall
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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 is approx. 10-20 kb, depending on the platform. Besides the test suite already mentioned, 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, 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'

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

View on GitHub
GitHub Stars21
CategoryProduct
Updated2mo ago
Forks8

Languages

C

Security Score

75/100

Audited on Jan 25, 2026

No findings