[Bug fortran/25850] real kind=16 failures on powerpc-darwin
howarth at nitro dot med dot uc dot edu
gcc-bugzilla@gcc.gnu.org
Fri Oct 6 01:20:00 GMT 2006
------- 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
More information about the Gcc-bugs
mailing list