This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch] Add to the libgfortran/newlib bodge to "detect" ftruncate support in ARM/AArch64/SH


On 20 August 2015 at 09:31, James Greenhalgh <james.greenhalgh@arm.com> wrote:
>
> Hi,
>
> Steve's patch in 2013 [1] to fix the MIPS newlib/libgfortran build
> causes subtle issues for an ARM/AArch64 newlib/libgfortran build. The
> problem is that ARM/AArch64 (and SH) define a stub function for
> ftruncate, which we would previously have auto-detected, but which is not
> part of the hardwiring Steve added.
>
> Continuing the tradition of building bodge on bodge on bodge, this patch
> hardwires HAVE_FTRUNCATE on for ARM/AArch64/SH, which does fix the issue
> I was seeing.

This is the second breakage I'm aware of due to the introduction of
this hardwire code, the first being related to strtold.  My
recollection is that it is only the mips target that requires the
newlib API hardwiring. Ideally we should rely only on the
AC_CHECK_FUNCS_ONCE probe code and avoid the hardwire entirely.

Perhaps a better approach for trunk would be something along the lines of:

case "${host}--x${with_newlib}" in
mips*--xyes)
  hardwire_newlib=1;;
esac
if test "${hardwire_newlib:-0}" -eq 1; then
  ... existing AC_DEFINES hardwire code
else
  ... existing AC_CHECK_FUNCS_ONCE probe code
fi

In effect limiting the hardwire to just the target which is unable to
probe.  For backport to 4.9 and 5 I think James' more conservative
patch is probably more appropriate.

What do folks think?

Cheers
/Marcus


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]