IIRC there were problems with SameValue() with Currency. These should be resolved now in fpc trunk.
This code
program Project1;
uses
math;
var
c1, c2: Currency;
begin
c1 := 1000;
c2 := 1001;
if SameValue(c1, c2) then
WriteLn('equal')
else
WriteLn('different');
ReadLn;
end.
does not compile of 64-bit Windows with Laz trunk/FPC3.2.0, Laz 2.0.10/FPC 3.2, Laz 2.0.8 / FPC 3.0.4 ("Can't determine which overloaded function to call"), but it does with Laz 2.0.10 / FPC trunk. Therefore, you are right: the Currency issue of Samevalue is solved.
However, this is not all. Returning to the original problem of not being unable to compile the ExCtrls package I noticed that it does compile with all of the mentioned versions except for FPC-trunk (64 bit - it does compile with FPC-trunk 32bit). Interestingly the error message the same as before for the others: "Can't determine which overloaded function to call" although the same compiler is able to compile the above test program for SameValue()...
It is my feeling that the issue is related to the use of generics by the TSpinEditExBase control (unit lcl/spinex.pp) which is the ancestor of TCurrSpinEditEx because there were some changes in generics with FPC trunk, and there is some discussion about them.