e500 port: the port itself
Joseph S. Myers
joseph@codesourcery.com
Fri Oct 18 20:03:00 GMT 2013
On Fri, 18 Oct 2013, Adhemerval Zanella wrote:
> Hi Joseph, thanks for the patch. As you suggested, I'll focus the review
> in the non-e500 specific parts. Aside to the Copysights nits, the patch
> looks ok. Any reason in particular to the missing copysignl PLT?
The copysignl PLT for soft-float results from use of __builtin_copysignl
in libgcc's complex multiplication / division, which then get linked into
glibc (copysignl uses directly in glibc's source code of course use the
hidden_* tricks to avoid going through PLT entries, but that doesn't help
for calls from libgcc, or calls generated by GCC to libgcc functions that
glibc also exports). For e500v2, GCC has abstf2/negtf2 patterns, which
suffice to get __builtin_copysignl expanded inline and so the PLT entry
isn't needed.
The ideal state would be appropriate GCC insn patterns to expand copysignl
inline for soft-float / e500v1, so that the PLT entry never appeared.
(In glibc, copysignl is in libc as well as libm, meaning the use of it in
libgcc doesn't generally cause problems. But people using other C
libraries with GCC have run into the issue of libgcc using copysignl,
which they don't have in their libc, several times.)
> > diff --git a/sysdeps/powerpc/powerpc32/e500/nofpu/fclrexcpt.c b/sysdeps/powerpc/powerpc32/e500/nofpu/fclrexcpt.c
> > new file mode 100644
> > index 0000000..92a7dd1
> > --- /dev/null
> > +++ b/sysdeps/powerpc/powerpc32/e500/nofpu/fclrexcpt.c
> > @@ -0,0 +1,53 @@
> > +/* Clear given exceptions in current floating-point environment. e500 version.
> > + Copyright (C) 2004-2013 Free Software Foundation, Inc.
>
> Shouldn't be just 2013? This is also applies for other Copyright dates
> for new files.
These files are based on Aldy's old spe add-on for glibc 2.3, which was
released in 2004. Copyright dates reflect files being based on other
files or having been previously released.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list