------- Comment #6 from howarth at nitro dot med dot uc dot edu 2006-10-06 01:20 ------- The last work on this by Andrew was to propose the code fragment below for remapping the functions...
static void darwin_patch_builtin (int fncode) { tree fn = built_in_decls[fncode]; const char *newname; if (!fn) return; sym = DECL_ASSEMBLER_NAME (fn); newname = alloca (IDENTIFIER_LENGTH (sym)+9); strcpy (newname, IDENTIFIER_POINTER (sym)); strcat (newname, "$LDBL128"); sym = get_identifier (newname); SET_DECL_ASSEMBLER_NAME (fn, sym); fn = implicit_built_in_decls[fncode]; if (fn) SET_DECL_ASSEMBLER_NAME (fn, sym); } Mike Stump provide a list of functions to be remapped... ___svfscanf$LDBL128 _fmal$LDBL128 _strtold_l$LDBL128 ___svfscanf_l$LDBL128 _fmaxl$LDBL128 _swprintf$LDBL128 ___vfprintf$LDBL128 _fminl$LDBL128 _swprintf_l$LDBL128 ___vfwprintf$LDBL128 _fmodl$LDBL128 _swscanf$LDBL128 ___vfwscanf$LDBL128 _fprintf$LDBL128 _swscanf_l$LDBL128 _acoshl$LDBL128 _fprintf_l$LDBL128 _syslog$LDBL128 _acosl$LDBL128 _frexpl$LDBL128 _tanhl$LDBL128 _asinhl$LDBL128 _fscanf$LDBL128 _tanl$LDBL128 _asinl$LDBL128 _fscanf_l$LDBL128 _tgammal$LDBL128 _asl_log$LDBL128 _fwprintf$LDBL128 _truncl$LDBL128 _asl_vlog$LDBL128 _fwprintf_l$LDBL128 _vasprintf$LDBL128 _asprintf$LDBL128 _fwscanf$LDBL128 _vasprintf_l$LDBL128 _asprintf_l$LDBL128 _fwscanf_l$LDBL128 _verr$LDBL128 _atan2l$LDBL128 _hypotl$LDBL128 _verrc$LDBL128 _atanhl$LDBL128 _ilogbl$LDBL128 _verrx$LDBL128 _atanl$LDBL128 _ldexpl$LDBL128 _vfprintf$LDBL128 _cabsl$LDBL128 _lgammal$LDBL128 _vfprintf_l$LDBL128 _cacoshl$LDBL128 _llrintl$LDBL128 _vfscanf$LDBL128 _cacosl$LDBL128 _llroundl$LDBL128 _vfscanf_l$LDBL128 _cargl$LDBL128 _log10l$LDBL128 _vfwprintf$LDBL128 _casinhl$LDBL128 _log1pl$LDBL128 _vfwprintf_l$LDBL128 _casinl$LDBL128 _log2l$LDBL128 _vfwscanf$LDBL128 _catanhl$LDBL128 _logbl$LDBL128 _vfwscanf_l$LDBL128 _catanl$LDBL128 _logl$LDBL128 _vprintf$LDBL128 _cbrtl$LDBL128 _lrintl$LDBL128 _vprintf_l$LDBL128 _ccoshl$LDBL128 _lroundl$LDBL128 _vscanf$LDBL128 _ccosl$LDBL128 _modfl$LDBL128 _vscanf_l$LDBL128 _ceill$LDBL128 _nanl$LDBL128 _vsnprintf$LDBL128 _cexpl$LDBL128 _nearbyintl$LDBL128 _vsnprintf_l$LDBL128 _cimagl$LDBL128 _nextafterl$LDBL128 _vsprintf$LDBL128 _clogl$LDBL128 _nexttoward$LDBL128 _vsprintf_l$LDBL128 _conjl$LDBL128 _nexttowardf$LDBL128 _vsscanf$LDBL128 _copysignl$LDBL128 _nexttowardl$LDBL128 _vsscanf_l$LDBL128 _coshl$LDBL128 _powl$LDBL128 _vswprintf$LDBL128 _cosl$LDBL128 _printf$LDBL128 _vswprintf_l$LDBL128 _cpowl$LDBL128 _printf_l$LDBL128 _vswscanf$LDBL128 _cprojl$LDBL128 _remainderl$LDBL128 _vswscanf_l$LDBL128 _creall$LDBL128 _remquol$LDBL128 _vsyslog$LDBL128 _csinhl$LDBL128 _rintl$LDBL128 _vwarn$LDBL128 _csinl$LDBL128 _roundl$LDBL128 _vwarnc$LDBL128 _csqrtl$LDBL128 _scalblnl$LDBL128 _vwarnx$LDBL128 _ctanhl$LDBL128 _scalbnl$LDBL128 _vwprintf$LDBL128 _ctanl$LDBL128 _scanf$LDBL128 _vwprintf_l$LDBL128 _erfcl$LDBL128 _scanf_l$LDBL128 _vwscanf$LDBL128 _erfl$LDBL128 _sinhl$LDBL128 _vwscanf_l$LDBL128 _err$LDBL128 _sinl$LDBL128 _warn$LDBL128 _errc$LDBL128 _snprintf$LDBL128 _warnc$LDBL128 _errx$LDBL128 _snprintf_l$LDBL128 _warnx$LDBL128 _exp2l$LDBL128 _sprintf$LDBL128 _wcstold$LDBL128 _expl$LDBL128 _sprintf_l$LDBL128 _wcstold_l$LDBL128 _expm1l$LDBL128 _sqrtl$LDBL128 _wprintf$LDBL128 _fabsl$LDBL128 _sscanf$LDBL128 _wprintf_l$LDBL128 _fdiml$LDBL128 _sscanf_l$LDBL128 _wscanf$LDBL128 _floorl$LDBL128 _strtold$LDBL128 _wscanf_l$LDBL128 and Geoff mentioned... You also need to be sure to test macos_version_min. If you're compiling to target < 10.3.9, then you need to make sure to use the original version of at least printf and the other variadic functions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25850