On 10/07/2016 03:11 PM, Joseph Myers wrote: > On Fri, 7 Oct 2016, Andreas Krebbel wrote: > >> wrt (c): float_t appears to be more widely used than I expected. But the >> only hits which might indicate potential ABI problems where in clucene >> and libassa. (I've scanned the header files of about 25k Ubuntu source >> packages). > > If it's two out of 25000 source packages whose ABIs might be affected, I > think that shows it's much safer as a change in glibc than moving to > _FILE_OFFSET_BITS=64 as a default (which I expect will happen when someone > puts the work in). And probably safer than many past changes done through > symbol versioning.
Regarding (c) imagemagick is also affected (it wasn't really clear from my last email). Since it is a widely used lib I think this counts as a blocker. The ABI relevant MagickRealType depends on the size of float_t: /* Float_t is not an ABI type. */ #if MAGICKCORE_SIZEOF_FLOAT_T == 0 typedef float MagickRealType; #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_FLOAT) typedef float MagickRealType; #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_DOUBLE) typedef double MagickRealType; #elif (MAGICKCORE_SIZEOF_FLOAT_T == MAGICKCORE_SIZEOF_LONG_DOUBLE) typedef long double MagickRealType; #else # error Your float_t type is neither a float, nor a double, nor a long double #endif So I would prefer (b) which looks like a good compromise to me. -Andreas-