http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51364
--- Comment #8 from Domingo Alvarez <mingodad at gmail dot com> 2011-12-18 23:30:43 UTC --- (In reply to comment #7) > An executable with decimal float support is very big because the runtime > support is in static libraries, not in shared libraries (DLLs). That will > probably change if it ever gets widespread use. Thanks for the answer but there is something strange because the jump from a small executable to a big one +2.5MB is a bit strange, in one test program consisting of compiling the printf.c of sqlite3 after some defines to allow it compile outside sqlite3 source tree, the executable using _Decimal64 and _Decimal128 is 2.49MB and if I remove a call to "isnan" the size go down to 480KB and if I use _Decimal64 in place of _Decimal128 it goes down to 228KB. With other program that only do some calculations with _Decimal64 and one use of _Decimal128 result in an executable of 135KB if I add a call to "isnan" there is no change at all on executable size. So I got lost on understando the logic that makes gcc add 2MB of static code. By the results of the second program it seems that it's possible to use _Decimal64 _Decimal128 and have a reasonable executable size, but suddenly it jumps to 2.5MB. I tested lua 5.1.4 as well and it goes from using double from 150KB to using _Decimal64 to 2.48MB and I tried to cut code where _Math is done on numbers but without get any executable reduction. So resuming I think there is possibility to use _Decimal64 without load 2.5MB it only needs some adjusts to the way gcc is generating code.