What you see here is a very classic version of the GNU MPI (bignum) library. It has been surgically removed from GnuPG 1.4.10, specifically as found at: http://trilema.com/wp-content/uploads/2015/10/gnupg-1.4.10.tar.gz.asc SHA512(gnupg-1.4.10.tar.gz) : d037041d2e6882fd3b999500b5a7b42be2c224836afc358e1f8a2465c1b74473d518f185b7c324b2c8dec4ffb70e9e34a03c94d1a54cc55d297f40c9745f6e1b DEMO: 1) make 2) cd tests 3) make 4) ./test_mpi 5) output is: 37A063D056817668C7AA3418F29 6) q: 'Waaaaaa, it barfed!' a: You are probably using GCC 5 or LLVM. Stop. CHANGES FROM ORIGINAL: 1) Everything pertaining to Automake was nuked, and the earth where it stood - salted. Instead, we now have a conventional Makefile. It builds precisely ONE THING - a single 'mpi.a' library suitable for static linking into another project. This will turn up in 'bin'. Among other things, this now means that all KNOBS now reside in a MANUALLY-controlled 'knobs.h' found in 'include'. If you are building on some very peculiar unix, please read it and adjust as appropriate. It contains ONLY those knobs which actually pertain to the code. The Makefile contains a 'check-syntax' - users of Emacs and Flymake will see proper error-highlighting. 2) ALL chip-specific ASM optimizations (including those found in longlong.h) have been nuked. 3) GPG-specific cruft has been amputated to the extent practical. The logging system has been retained, but it can be easily torn out, which I may choose to do in the near future. The I/O buffering system has been retained. I may choose to remove it in the near future. The 'secure memory' (unpageable alloc) system has been retained. 'Localization' and all related idiocies have been nuked. Write hieroglyphs at home, leave them there, civilized folk don't need'em in their source code. 4) Other code has been altered solely to the extent required by items (1), (2), and (3). Cruft which appears in dead #ifdefs may be removed in the future. Don't get comfortable with it being there. 5) Readers who wish to know EXACTLY what I changed, should get a copy of the original tarball and write a simple script involving 'find' and 'vdiff', which sadly did not fit in the margins of this page. 6) To use the library, include 'include/mpi.h' in your project, and statically link with 'bin/mpi.a'. 7) The original code was distributed under GPL 3, which may apply on your planet and is therefore included. (See COPYING.) ---------- UPDATE #1: ---------- 1) Abolished the logging subsystem inherited from GPG. 2) Abolished the I/O buffering subsystem, from same. 3) Eliminated all #ifdef blocks pertaining to RiscOS. 4) config.h is now knobs.h and is considerably shorter on account of there now being a great many fewer knobs. 5) Eliminated certain blocks of dead code. 6) Inserted notice of modifications as specified in GPL-3