Hi Richy,
This release re-establishes binary compatibility with CLN-1.2.0 and fixes the ARM build, both inadvertently broken in the previous release.
The binary compatibility is restored for 32-bit platforms. For 64-bit platforms there is another binary-incompatible change. Doing a diff between the include files of cln-1.2.0 and cln-1.2.2 I found the attached differences. The decorated name of the functions read_integer, read_rational, read_float have changed. To reproduce: On a Linux/x86_64 machine (I used td189.testdrive.hp.com), do $ export CPPFLAGS="m64" LDFLAGS="-m64" and configure & build cln-1.2.0 and cln-1.2.2. $ nm cln-1.2.0/src/cl_I_readparsed.o | grep ' T ' 00000000000000ae T _ZN3cln12read_integerEjiPKcjj $ nm cln-1.2.2/src/cl_I_readparsed.o | grep ' T ' 00000000000000ae T _ZN3cln12read_integerEjiPKcmm and finally $ diff <(nm cln-1.2.0/src/.libs/libcln.so.5.0.0 | grep ' T ' | awk '{print $3}' | sort) \ <(nm cln-1.2.2/src/.libs/libcln.so.5.0.2 | grep ' T ' | awk '{print $3}' | sort) 145c145 < _ZN3cln10cl_sstringEPKcj ---
_ZN3cln10cl_sstringEPKcm 172c172 < _ZN3cln10read_floatEjNS_14float_format_tEiPKcjjjj
_ZN3cln10read_floatEjNS_14float_format_tEiPKcmmmm 275c275 < _ZN3cln12read_integerEjiPKcjj
_ZN3cln12read_integerEjiPKcmm 310c310 < _ZN3cln13read_rationalEjiPKcjjj
_ZN3cln13read_rationalEjiPKcmmm 463a464 _ZN3cln22cl_float_to_FF_pointerEf 468a470 _ZN3cln23cl_double_to_DF_pointerEd
Maintaining binary compatibility is more work than one would think... Bruno *** include/cln/integer_io.h 15 Sep 2007 21:34:15 -0000 1.3 --- include/cln/integer_io.h 22 Feb 2008 21:30:26 -0000 1.4 *************** *** 21,27 **** // (also index2-index1 Ziffern, incl. evtl. Dezimalpunkt am Schluß) // < ergebnis: Integer extern const cl_I read_integer (unsigned int base, ! cl_signean sign, const char * string, uintL index1, uintL index2); // The following does strictly the same as the general read_complex. // It is here only so that you don't need the rational, complex and float number --- 21,27 ---- // (also index2-index1 Ziffern, incl. evtl. Dezimalpunkt am Schluß) // < ergebnis: Integer extern const cl_I read_integer (unsigned int base, ! cl_signean sign, const char * string, uintC index1, uintC index2); // The following does strictly the same as the general read_complex. // It is here only so that you don't need the rational, complex and float number *** include/cln/rational_io.h 15 Sep 2007 21:34:15 -0000 1.3 --- include/cln/rational_io.h 22 Feb 2008 21:30:26 -0000 1.4 *************** *** 21,27 **** // (also index3-index1 Zähler-Ziffern, index2-index3-1 Nenner-Ziffern) // < ergebnis: rationale Zahl extern const cl_RA read_rational (unsigned int base, ! cl_signean sign, const char * string, uintL index1, uintL index3, uintL index2); // The following does strictly the same as the general read_complex. // It is here only so that you don't need the complex and float number --- 21,27 ---- // (also index3-index1 Zähler-Ziffern, index2-index3-1 Nenner-Ziffern) // < ergebnis: rationale Zahl extern const cl_RA read_rational (unsigned int base, ! cl_signean sign, const char * string, uintC index1, uintC index3, uintC index2); // The following does strictly the same as the general read_complex. // It is here only so that you don't need the complex and float number *** include/cln/float_io.h 15 Sep 2007 21:34:15 -0000 1.3 --- include/cln/float_io.h 22 Feb 2008 21:30:26 -0000 1.4 *************** *** 26,32 **** // Exponenten-Ziffer) // < ergebnis: Float extern const cl_F read_float (unsigned int base, float_format_t prec, ! cl_signean sign, const char * string, uintL index1, uintL index4, uintL index2, uintL index3); // The following does strictly the same as the general read_complex. // It is here only so that you don't need the complex and rational number --- 26,32 ---- // Exponenten-Ziffer) // < ergebnis: Float extern const cl_F read_float (unsigned int base, float_format_t prec, ! cl_signean sign, const char * string, uintC index1, uintC index4, uintC index2, uintC index3); // The following does strictly the same as the general read_complex. // It is here only so that you don't need the complex and rational number