One issue with doing the transition is what mangling should be used with the new long double.
At the moment, the current mangling is: long double "g" __float128 "u9__ieee128" __ibm128 "g" Obviously this will have to change in the future. It is unfortunate that we choose "g" to mean IBM extended double many many years ago, when it should have been used for IEEE 128-bit floating point. But that is long ago, so I think we need to keep it. But assuming we want compatibility with libraries like glibc and libstdc++, I think we will have to continue to use "g" for __ibm128. With the long double change, I tend to view this as an ABI change. But if the user doesn't use long double, they should be able to link without changes. I would propose using a new mangling for IEEE 128-bit long double. I would prefer to get agreement on what the new mangling should be so we don't have an issue like we had in GCC 8.1 going to GCC 8.2, where we changed the mangling, and had to provide aliases for the old name. At the moment I think the mangling should be: long double "g" if long double is IBM long double "u12_ieee128_ld" if long double is IEEE __float128 "u9__ieee128" __ibm128 "g" If we decide to change the __ibm128 mangling (or the long double when long double is IBM), then we will likely need to generate aliases to bridge the old vs. new support. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797