diff -Nru cln-1.3.1.orig/src/integer/cl_I.h cln-1.3.1.hack/src/integer/cl_I.h --- cln-1.3.1.orig/src/integer/cl_I.h 2009-05-10 20:32:31 +0000 +++ cln-1.3.1.hack/src/integer/cl_I.h 2010-09-11 13:00:35 +0000 @@ -11,6 +11,16 @@ #include "base/cl_offsetof.h" #include "base/digitseq/cl_DS.h" +#ifdef _MSC_VER + // MSVC does not tag "extern cl_private_thing cl_I_constructor_from_UL (uint32 wert);" + // in cln/number.h with the cln namespace because it is declared inside the body of + // an inlined function (symbol created is >>?cl_I_constructor_from_UL@@YAPAUcl_anything@cln@@K@Z<<) + // But cl_I_constructor_from_UL is defined inside cln namespace in cl_I_from_UL.cc + // (symbol created is >>?cl_I_constructor_from_UL@cln@@YAPAUcl_anything@1@K@Z<<) + // So we get unresolved external symbols on every assignment and constructor operation + cln::cl_private_thing cl_I_constructor_from_UL (uint32 wert); +#endif + namespace cln { // maximal needed length of a digit sequence for a fixnum diff -Nru cln-1.3.1.orig/src/integer/conv/cl_I_from_UL.cc cln-1.3.1.hack/src/integer/conv/cl_I_from_UL.cc --- cln-1.3.1.orig/src/integer/conv/cl_I_from_UL.cc 2009-05-10 20:32:31 +0000 +++ cln-1.3.1.hack/src/integer/conv/cl_I_from_UL.cc 2010-09-11 13:00:24 +0000 @@ -93,4 +93,16 @@ } // namespace cln +#ifdef _MSC_VER + // MSVC does not tag "extern cl_private_thing cl_I_constructor_from_UL (uint32 wert);" + // in cln/number.h with the cln namespace because it is declared inside the body of + // an inlined function (symbol created is >>?cl_I_constructor_from_UL@@YAPAUcl_anything@cln@@K@Z<<) + // But cl_I_constructor_from_UL is defined inside cln namespace in cl_I_from_UL.cc + // (symbol created is >>?cl_I_constructor_from_UL@cln@@YAPAUcl_anything@1@K@Z<<) + // So we get unresolved external symbols on every assignment and constructor operation + cln::cl_private_thing cl_I_constructor_from_UL (uint32 wert) { + return cln::cl_I_constructor_from_UL(wert); + } +#endif + #endif