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: RFC patch: Add libquadmath - and use it in gfortran (round two)


On Mon, Nov 08, 2010 at 05:32:39PM -0800, Steve Kargl wrote:
> On Mon, Nov 08, 2010 at 07:50:35PM -0500, Jack Howarth wrote:
> > On Mon, Nov 08, 2010 at 04:19:21PM -0800, Steve Kargl wrote:
> > > On Mon, Nov 08, 2010 at 06:33:15PM -0500, Jack Howarth wrote:
> > > > 
> > > > [MacPro:~/gcc-4.6-20101108/libgfortran] howarth% grep gfortran_transfer_real_write128 *
> > > > gfortran.map:    _gfortran_transfer_real_write128;
> > > > 
> > > 
> > > Try 'grep real_write128'.
> > > 
> > > The _gfortran_ prefix comes from a C macro with
> > > the clever name PREFIX.
> > > 
> > > -- 
> > > Steve
> > 
> > Steve,
> >    The current patches on x86_64-apple-darwin10 don't seem to be applying
> > the prefix. I have...
> > 
> > [MacPro:x86_64-apple-darwin10.5.0/libgfortran/.libs] howarth% nm libgfortran.a | grep write128
> > 0000000000000dd0 T _transfer_complex_write128
> > 0000000000000c10 T _transfer_real_write128
> > 
> 
> Grep for _write128 in the patched libgfortran source code.
> I suspect Tobias may have forgotten to write, e.g.,
> PREFIX(transfer_real_write128).  I haven't has time to
> look over the newest patches.

Steve,
   The current extern statements are rather confused in the patch. Some of the ones
wrapppered with

#if defined(GFC_REAL_16_IS_FLOAT128)

are misnamed (ie don't have 128 suffixed onto the call) and others like transfer_real_write have
no extern. I believe fixing transfer.c to have...

extern void transfer_real (st_parameter_dt *, void *, int);
export_proto(transfer_real);

#if defined(GFC_REAL_16_IS_FLOAT128)

extern void transfer_real128 (st_parameter_dt *, void *, int);
export_proto(transfer_real128);

#endif

extern void transfer_real_write (st_parameter_dt *, void *, int);
export_proto(transfer_real_write);

#if defined(GFC_REAL_16_IS_FLOAT128)

extern void transfer_real_write128 (st_parameter_dt *, void *, int);
export_proto(transfer_real_write128);

#endif

and

extern void transfer_complex (st_parameter_dt *, void *, int);
export_proto(transfer_complex);

#if defined(GFC_REAL_16_IS_FLOAT128)

extern void transfer_complex128 (st_parameter_dt *, void *, int);
export_proto(transfer_complex128);

#endif

extern void transfer_complex_write (st_parameter_dt *, void *, int);
export_proto(transfer_complex_write);

#if defined(GFC_REAL_16_IS_FLOAT128)

extern void transfer_complex_write128 (st_parameter_dt *, void *, int);
export_proto(transfer_complex_write128);

#endif

may be sufficient. Currently testing those changes.
          Jack

> 
> -- 
> Steve


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