./emulators/unicorn, CPU emulator engine framework based on QEMU

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.1.1, Package name: unicorn-2.1.1, Maintainer: pkgsrc-users

Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator
framework based on QEMU.

Unicorn offers some unparalleled features:
- Multi-architecture: ARM, AMM64 (ARMv8), M68K, MIPS, SPARC, and X86 (16, 32,
64-bit)
- Clean/simple/lightweight/intuitive architecture-neutral API
- Implemented in pure C language, with bindings for Python, Java, and Go
- Native support for Windows & *nix (with Mac OSX, Linux, *BSD & Solaris
confirmed)
- High performance via Just-In-Time compilation
- Support for fine-grained instrumentation at various levels
- Thread-safety by design


Required to run:
[devel/glib2] [lang/python27]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 4078.293 KB

Version history: (Expand)


CVS history: (Expand)


   2024-12-03 12:51:00 by Jonathan Perkin | Files touched by this commit (1)
Log message:
unicorn: Explicitly requires GNU ar features.
   2024-11-04 20:05:18 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
unicorn py-unicorn: updated to 2.1.1

Version v2.1.1

This is a small release to fix a few urgent issues.

Remove pkg_resources usage
Fix wheels distribution for x86_64 macos
Fix redundant wheel hacks
Support musllinux distribution

Version v2.1.0
It has been a while since the last release, and 2.1.0 brings several exciting \ 
features. Below is the changelog from the latest to the oldest (though not \ 
strictly).

Highlights

Revive QEMU logs, now we have -DUNICORN_LOGGING=yes to enable all qemu logs. \ 
@BitMaskMixer
Faster (up to 40x) write performance by not always doing store_helper and \ 
cleaning page locks. @tunz @boborjan2
Brand new python bindings, with strongly typed and many improvements. @elicn
Fix to a long-standing MinGW random segfault bug.
We bring python2 compatibility back.
We now fully support M1, both building and a pre-built wheel.
We support snapshot memory now, with a very low overhead copy-on-write fashion. \ 
@PhilippTakacs
An option to bypass MMU is also added, check our FAQ. @PhilippTakacs
A brand new (and modern) java bindings. We are also working to publish it to \ 
maven. @nneonneo
We have zig integrated. @kassane @atipls
Now Unicorn no longer allocates 2GB memory for every instance. The memory will \ 
be only committed once used and the upper limit can be adjusted with uc_ctl.
New DotNet binding, with published to both Github and Nuget. @TSRBerry
The release will attach all binaries, thanks to @marameref

Fixes & Improvements

RISCV improvements, but we still have a long way to go. @apparentlymart @ks0777
cmake improvements @scribam @es3n1n
Various python bindings fix and improvements @bet4it @rhelmot
Docs. @gerph @BitMaskMixer
Rust bindings. @lockbox @mlgiraud @deadash
TCG backend fixes. @redoste @StalkR @dglynos
PPC32 fixes. @dotCirill
Haiku fixes. @kallisti5
Improvements to avoid simulator detection.
   2023-05-11 08:47:11 by Adam Ciarcinski | Files touched by this commit (10) | Package updated
Log message:
unicorn py-unicorn: updated to 2.0.1.post1

Version 2.0.1

Features:

- Support building & running on BE hosts.
- Fix and support `clang-cl` on Windows.
- Fix python `sdist` and add aarch64 Linux wheels. Note `pip` can build Unicorn2 \ 
on M1 now!
- C# binding is refined and upgraded to .Net 6.

Fix/Improvements:

- Various bindings improvements.
- Improvements for tests.
- Fail explicitly when VEX.L is set.
- Fix endianness when writing PPC32 CR register.
- Fix a bug in `uc_ctl_set_cpu_model` check.
- Fix Tricore PC not updating.
- Fix the mapping not updated if users modify the mappings in the hooks.
- Handle pathological cases consistently.
- Fix memory leaks in PPC target.
- Fix memory leaks in Tricore target.
- Fix MSVC handling in cmake.
- Fix PC sync-ing problems for `UC_HOOK_BLOCK` hooks.
- Fix PC sync-ed twice when users request a soft restart.
- Prevent overflow with pre-allocated RAM blocks.
- Add FPCR and FPSR registers
- Fix ARM CPU state not deep copied.
- Fix PC not sync-ed for memory operation on aarch64.
- Exit invalid store operations early to avoid the target registers being \ 
overwritten.
- Improve the support for ARM BE32.

Version 2.0.0

Features:

- TriCore Support

Fixes/Improvements:

- Build both shared library and static archive as unicorn1 does.
- Misc bindings improvements.
- Make sure setjmp-setjmp-wrapper-win32 participates in the build.
- Improve Rust bindings build logic.
- Fix wrong python binding for UC_CTL_TB_REMOVE_CACHE
- Flush translation blocks when the count hook is removed.
- Fix unicorn crash when nested `uc_emu_start` deletes a hook
- Fix CPU not fully resumed when writing PC.
- Don't quit TB if `uc_mem_protect` doesn't change the protection of current TB \ 
memory.
- Add type annotations for python bindings.
- Add CPUID hook for python bindings.
- Don't repeat memory hooks if there is already an unhandled error.
- Support reads and writes over all Arm SIMD registers
- Fix wrong registers range in python bindings.
- Fix uc_mem_protect on mmio regions
- Fix a UAF caused by hook cache.
- Fix the value collision between UC_MODE_ARMBE8 and UC_MODE_ARM926
   2023-05-10 21:14:51 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
unicorn py-unicorn: updated to 1.0.3

Version 1.0.3

Fix some building issues
- Fix build with LLVM on Powerpc64(le)
- cmake: enable UNICORN_HAS_ARMEB when ARM is on
- Better support MingW building
- Better support FreeBSD host
- Better support VS2008/VS2010
Fix some issues in the core:
- Fix wrong sync after UC_ERR_[READ, WRITE, FETCH]_[UNMAPPED, PROT]
- Support querying architecture mode besides arm
- Fix pausing within Thumb2 ITE blocks
Arm:
- Support Arm BE8 mode
X86:
- Fix FPIP & FTST instructions
Bindings:
- Java: remove deprecated javah and build with javac
- Python: handle exceptions raised in hook functions
- Rust binding
   2022-06-30 13:19:02 by Nia Alarie | Files touched by this commit (524)
Log message:
*: Revbump packages that use Python at runtime without a PKGNAME prefix
   2021-12-08 17:07:18 by Adam Ciarcinski | Files touched by this commit (3063)
Log message:
revbump for icu and libffi
   2021-10-26 12:24:17 by Nia Alarie | Files touched by this commit (266)
Log message:
emulators: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

The following distfiles could not be fetched (mostly distfiles fetched
conditionally...):

./emulators/compat30/distinfo compat30-alpha-3.1.tar.bz2
./emulators/compat30/distinfo compat30-arm-3.1.tar.bz2
./emulators/compat30/distinfo compat30-m68k-3.1.tar.bz2
./emulators/compat30/distinfo compat30-mipseb-3.1.tar.bz2
./emulators/compat30/distinfo compat30-mipsel-3.1.tar.bz2
./emulators/compat30/distinfo compat30-powerpc-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sh3eb-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sh3el-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sparc-3.1.tar.bz2
./emulators/compat30/distinfo compat30-sparc64-3.1.tar.bz2
./emulators/compat30/distinfo compat30-vax-3.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-alpha-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-arm-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-m68k-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-mipseb-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-mipsel-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-powerpc-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-sparc-5.1.tar.bz2
./emulators/compat51-x11/distinfo compat51-x11-sparc64-5.1.tar.bz2
./emulators/xbeeb/distinfo BASIC2.rom
./emulators/xbeeb/distinfo OS-1.2.rom
./emulators/compat61/distinfo 20150430/compat61-alpha-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-arm-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-m68k-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mips64eb-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mips64el-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mipseb-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-mipsel-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-powerpc-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-sparc-6.1.tar.bz2
./emulators/compat61/distinfo 20150430/compat61-sparc64-6.1.tar.bz2
./emulators/compat16/distinfo compat16-alpha-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-arm-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-m68k-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-mipseb-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-mipsel-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-powerpc-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-sparc-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-sparc64-1.6.2.tar.bz2
./emulators/compat16/distinfo compat16-vax-1.6.2.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-alpha-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-arm-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-m68k-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-mipseb-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-mipsel-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-powerpc-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sh3eb-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sh3el-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sparc-4.0.tar.bz2
./emulators/compat40/distinfo 20071230/compat40-sparc64-4.0.tar.bz2
./emulators/compat20/distinfo compat20-alpha-2.1.tar.bz2
./emulators/compat20/distinfo compat20-arm-2.1.tar.bz2
./emulators/compat20/distinfo compat20-m68k-2.1.tar.bz2
./emulators/compat20/distinfo compat20-mipseb-2.1.tar.bz2
./emulators/compat20/distinfo compat20-mipsel-2.1.tar.bz2
./emulators/compat20/distinfo compat20-powerpc-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sh3eb-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sh3el-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sparc-2.1.tar.bz2
./emulators/compat20/distinfo compat20-sparc64-2.1.tar.bz2
./emulators/compat20/distinfo compat20-vax-2.1.tar.bz2
./emulators/compat50-x11/distinfo compat50-x11-sparc64-5.0.tar.bz2
./emulators/compat12/distinfo compat12-m68k-1.2.1.tar.bz2
./emulators/compat12/distinfo compat12-ns32k-1.2.tar.bz2
./emulators/compat12/distinfo compat12-sparc-1.2.1.tar.bz2
./emulators/compat15/distinfo compat15-alpha-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-arm-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-m68k-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-mipsel-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-ns32k-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-powerpc-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-sparc-1.5.3.tar.bz2
./emulators/compat15/distinfo compat15-sparc64-1.5.2.tar.bz2
./emulators/compat15/distinfo compat15-vax-1.5.3.tar.bz2
./emulators/compat50/distinfo compat50-alpha-5.0.tar.bz2
./emulators/compat50/distinfo compat50-arm-5.0.tar.bz2
./emulators/compat50/distinfo compat50-m68k-5.0.tar.bz2
./emulators/compat50/distinfo compat50-mipseb-5.0.tar.bz2
./emulators/compat50/distinfo compat50-mipsel-5.0.tar.bz2
./emulators/compat50/distinfo compat50-powerpc-5.0.tar.bz2
./emulators/compat50/distinfo compat50-sparc-5.0.tar.bz2
./emulators/compat50/distinfo compat50-sparc64-5.0.tar.bz2
./emulators/compat16-extras/distinfo compat16-extras-sparc-1.6.2.tar.bz2
./emulators/compat40-extras/distinfo 20071230/compat40-extras-sparc-4.0.tar.bz2
./emulators/compat15-extras/distinfo compat15-extras-sparc-1.5.3.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-alpha-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-arm-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-m68k-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-mipseb-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-mipsel-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-powerpc-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-sparc-6.0.tar.bz2
./emulators/compat60/distinfo 20150428/compat60-sparc64-6.0.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-alpha-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-arm-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-m68k-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mips64eb-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mips64el-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mipseb-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-mipsel-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-powerpc-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-sparc-6.1.tar.bz2
./emulators/compat61-x11/distinfo 20150430/compat61-x11-sparc64-6.1.tar.bz2
./emulators/osf1_lib/distinfo netscape-4.7-3.alpha.rpm
./emulators/compat20-extras/distinfo compat20-extras-sparc-2.1.tar.bz2
./emulators/compat30-extras/distinfo compat30-extras-sparc-3.1.tar.bz2
./emulators/compat30-extras/distinfo compat30-extras-vax-3.1.tar.bz2
./emulators/compat14/distinfo compat14-alpha-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-arm-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-m68k-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-mipsel-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-ns32k-1.4.2.tar.bz2
./emulators/compat14/distinfo compat14-powerpc-1.4.3.tar.bz2
./emulators/compat14/distinfo compat14-sparc-1.4.3.1.tar.bz2
./emulators/compat14/distinfo compat14-vax-1.4.3.tar.bz2
./emulators/compat51/distinfo compat51-alpha-5.1.tar.bz2
./emulators/compat51/distinfo compat51-arm-5.1.tar.bz2
./emulators/compat51/distinfo compat51-m68k-5.1.tar.bz2
./emulators/compat51/distinfo compat51-mipseb-5.1.tar.bz2
./emulators/compat51/distinfo compat51-mipsel-5.1.tar.bz2
./emulators/compat51/distinfo compat51-powerpc-5.1.tar.bz2
./emulators/compat51/distinfo compat51-sparc-5.1.tar.bz2
./emulators/compat51/distinfo compat51-sparc64-5.1.tar.bz2
./emulators/compat13/distinfo compat13-alpha-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-arm-1.3.2.tar.bz2
./emulators/compat13/distinfo compat13-m68k-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-mipsel-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-ns32k-1.3.3.tar.bz2
./emulators/compat13/distinfo compat13-sparc-1.3.3.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-alpha-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-arm-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-armeb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-armv6hf-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-armv7hf-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-earm-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-earmv7hfeb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-m68k-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mips64eb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mips64el-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mipseb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-mipsel-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-powerpc-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sh3eb-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sh3el-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sparc-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-sparc64-8.0.tar.bz2
./emulators/compat80/distinfo 20191014/compat80-vax-8.0.tar.bz2
   2021-10-21 21:09:11 by Jonathan Perkin | Files touched by this commit (3)
Log message:
unicorn: Fix build on SunOS.