Исправлено, теперь собирается в 32-битный код нормально.
После этого коммита появилась проблема со сборкой под OS X
../NC/src/script.cpp:578:29: error: call to constructor of 'CBigNum' is ambiguous
CBigNum bn(stack.size());
^ ~~~~~~~~~~~~
../NC/src/bignum.h:80:5: note: candidate constructor
CBigNum(int8_t n) { BN_init(this); if (n >= 0) setuint32(n); else setint64(n); }
^
../NC/src/bignum.h:81:5: note: candidate constructor
CBigNum(int16_t n) { BN_init(this); if (n >= 0) setuint32(n); else setint64(n); }
^
../NC/src/bignum.h:82:5: note: candidate constructor
CBigNum(int32_t n) { BN_init(this); if (n >= 0) setuint32(n); else setint64(n); }
^
../NC/src/bignum.h:83:5: note: candidate constructor
CBigNum(int64_t n) { BN_init(this); if (n >= 0) setuint64(n); else setint64(n); }
^
../NC/src/bignum.h:85:5: note: candidate constructor
CBigNum(uint8_t n) { BN_init(this); setuint32(n); }
^
../NC/src/bignum.h:86:5: note: candidate constructor
CBigNum(uint16_t n) { BN_init(this); setuint32(n); }
^
../NC/src/bignum.h:87:5: note: candidate constructor
CBigNum(uint32_t n) { BN_init(this); setuint32(n); }
^
../NC/src/bignum.h:88:5: note: candidate constructor
CBigNum(uint64_t n) { BN_init(this); setuint64(n); }
^
../NC/src/bignum.h:58:5: note: candidate constructor
CBigNum(const CBigNum& b)
^
../NC/src/bignum.h:90:14: note: candidate constructor
explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); }
^
../NC/src/script.cpp:676:29: error: call to constructor of 'CBigNum' is ambiguous
CBigNum bn(stacktop(-1).size());
^ ~~~~~~~~~~~~~~~~~~~
../NC/src/bignum.h:80:5: note: candidate constructor
CBigNum(int8_t n) { BN_init(this); if (n >= 0) setuint32(n); else setint64(n); }
^
../NC/src/bignum.h:81:5: note: candidate constructor
CBigNum(int16_t n) { BN_init(this); if (n >= 0) setuint32(n); else setint64(n); }
^
../NC/src/bignum.h:82:5: note: candidate constructor
CBigNum(int32_t n) { BN_init(this); if (n >= 0) setuint32(n); else setint64(n); }
^
../NC/src/bignum.h:83:5: note: candidate constructor
CBigNum(int64_t n) { BN_init(this); if (n >= 0) setuint64(n); else setint64(n); }
^
../NC/src/bignum.h:85:5: note: candidate constructor
CBigNum(uint8_t n) { BN_init(this); setuint32(n); }
^
../NC/src/bignum.h:86:5: note: candidate constructor
CBigNum(uint16_t n) { BN_init(this); setuint32(n); }
^
../NC/src/bignum.h:87:5: note: candidate constructor
CBigNum(uint32_t n) { BN_init(this); setuint32(n); }
^
../NC/src/bignum.h:88:5: note: candidate constructor
CBigNum(uint64_t n) { BN_init(this); setuint64(n); }
^
../NC/src/bignum.h:58:5: note: candidate constructor
CBigNum(const CBigNum& b)
^
../NC/src/bignum.h:90:14: note: candidate constructor
explicit CBigNum(uint256 n) { BN_init(this); setuint256(n); }
^
По поводу последнего коммита, похоже это поломало и сборку под Microsoft Visual C и сборку под MacOS X
Update: MSVC починил
https://github.com/novacoin-project/novacoin/pull/87 , только есть вопрос по поводу совместимости лицензий...
Под MSVC ясно что поломало, потому что там нет inttypes.h... Возможно, есть в бета-версии 2015 студии, можно посмотреть. Впрочем, пытаться собирать 2013-й и более новой студией пока не стоит, потому что там более строгие требования на соответствие стандартам и сборка зависимостей из-за этого является просто адом... Чтобы тот же miniupnpc собрать 2013 или 2015 студией, нужно сначала поудалять из него дубликаты директив экспорта, к примеру.
Ну а с LLVM разговор предстоит отдельный, похоже он size_t не может привести к uint64_t, вылечу сегодня добавлением нового конструктора или принудительным приведением типа.
На тему студии:
https://code.google.com/p/msinttypes/downloads/listПоложить в директорию включаемых файлов студии, и должно собраться.