-
+ 65A8797E0181E25A392820473F105126FFD8C5DD0FA57011D04FF984E852F7E338EE6FBDA3C5FA176F1021B404E4712005AA9FC4D25041D924611F09D539074A
smg_comms/mpi/README
(0 . 0)(1 . 89)
1445 NB: this is used by the smg_rsa component of EuCrypt.
1446
1447 What you see here is a very classic version of the GNU MPI (bignum) library.
1448 It has been surgically removed from GnuPG 1.4.10, specifically as found at:
1449
1450 http://trilema.com/wp-content/uploads/2015/10/gnupg-1.4.10.tar.gz.asc
1451
1452 SHA512(gnupg-1.4.10.tar.gz) :
1453 d037041d2e6882fd3b999500b5a7b42be2c224836afc358e1f8a2465c1b74473d518f185b7c324b2c8dec4ffb70e9e34a03c94d1a54cc55d297f40c9745f6e1b
1454
1455 Recommended compilation:
1456 1) gprbuild mpi.gpr
1457
1458 Tests:
1459 2) cd tests
1460 3) gprbuild
1461 4) ./test_mpi
1462 5) output is:
1463 37A063D056817668C7AA3418F29
1464 6) q: 'Waaaaaa, it barfed!'
1465 a: You are probably using GCC 5 or LLVM. Stop.
1466
1467
1468 CHANGES FROM ORIGINAL:
1469
1470 1) Everything pertaining to Automake was nuked, and the earth where it stood -
1471 salted.
1472
1473 Instead, we now have a conventional Makefile. It builds precisely
1474 ONE THING - a single 'mpi.a' library suitable for static linking into
1475 another project. This will turn up in 'bin'.
1476
1477 Among other things, this now means that all KNOBS now reside in a
1478 MANUALLY-controlled 'knobs.h' found in 'include'. If you are building
1479 on some very peculiar unix, please read it and adjust as appropriate.
1480 It contains ONLY those knobs which actually pertain to the code.
1481
1482 The Makefile contains a 'check-syntax' - users of Emacs and Flymake
1483 will see proper error-highlighting.
1484
1485 2) ALL chip-specific ASM optimizations (including those found in longlong.h)
1486 have been nuked.
1487
1488 3) GPG-specific cruft has been amputated to the extent practical.
1489
1490 The logging system has been retained, but it can be easily torn out,
1491 which I may choose to do in the near future.
1492
1493 The I/O buffering system has been retained. I may choose to remove it
1494 in the near future.
1495
1496 The 'secure memory' (unpageable alloc) system has been retained.
1497
1498 'Localization' and all related idiocies have been nuked.
1499 Write hieroglyphs at home, leave them there, civilized folk
1500 don't need'em in their source code.
1501
1502 4) Other code has been altered solely to the extent required by items
1503 (1), (2), and (3).
1504
1505 Cruft which appears in dead #ifdefs may be removed in the future.
1506 Don't get comfortable with it being there.
1507
1508 5) Readers who wish to know EXACTLY what I changed, should get a copy of the
1509 original tarball and write a simple script involving 'find' and 'vdiff',
1510 which sadly did not fit in the margins of this page.
1511
1512 6) To use the library, include 'include/mpi.h' in your project,
1513 and statically link with 'bin/mpi.a'.
1514
1515 7) The original code was distributed under GPL 3, which may apply on
1516 your planet and is therefore included. (See COPYING.)
1517
1518 ----------
1519 UPDATE #1:
1520 ----------
1521
1522 1) Abolished the logging subsystem inherited from GPG.
1523
1524 2) Abolished the I/O buffering subsystem, from same.
1525
1526 3) Eliminated all #ifdef blocks pertaining to RiscOS.
1527
1528 4) config.h is now knobs.h and is considerably shorter
1529 on account of there now being a great many fewer knobs.
1530
1531 5) Eliminated certain blocks of dead code.
1532
1533 6) Inserted notice of modifications as specified in GPL-3