[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

No luck



   Date: 	Wed, 12 May 1999 13:18:20 -0700
   From: "erik.ivanenko" <erik.ivanenko at utoronto.ca>

   joel at oarcorp.com wrote:

   > On Wed, 12 May 1999, erik.ivanenko wrote:
   >
   > > Rosimildo DaSilva wrote:
   > >
   > > > No problem.
   > > >
   > > > I am glad you got everything figured out for your BSP.
   > > >
   > > > Now, that we have C++ exceptions and Global Ctor/Dtor
   > > > working for the intel i386 platform, we have to make sure
   > > > that all changes get incorporated to GCC and RTEMS.
   > > > I mean the changes to get just this working. Let's do this
   > > > first, and later worry about the CORBA stuff.
   > > >
   > > > My understanding is that you had to change a few things
   > > > for ELF to get Float-Point working.
   > > >
   > > > Rosimildo.
   > >
   > >   OK.  I did have to modify a few things to get SFP going on ELF.  To get this
   > > into RTEMS, we'll need a lot of help ---
   > >
   > > The original SFP patch modified t-i386bare, which is used to build i386-coff.
   > >
   > > The EH patch created a new file, t-rtems-i386, which I had to modify to reflect
   > > the same alterations as t-i386bare along with two other files:
   > >
   > > gcc/config/i386/i386.h : changed LONG_DOUBLE_TYPE_SIZE to 64
   > > gcc/real.h                        : changed LONG_DOUBLE_TYPE_SIZE to 64
   > >
   > > These changes have to be put in place depending on the type of compiler the
   > > user wishes to build.
   > >
   > > How do they get incorporated? i386.h and real.h are used elsewhere already, so
   > > this is a platform specific change.
   >
   > My understanding is that platform specific overrides are handled like
   > this:
   >
   > /* in an rtemsspecific file */
   >
   > #include i386/i386.h
   >
   > #undef LONG_DOUBLE_TYPE_SIZE
   > #define LONG_DOUBLE_TYPE_SIZE 64
   >
   > Or something like that.
   >
   > I would think it is better to have the --enable-soft-fp switch.
   >
   > Ian/Gumby .. opinions please.
   >
   > --joel

     The i386.h file also contains some other #defines that query the
   LONG_DOUBLE_TYPE_SIZE that behave differently for different sizes.  In fact,
   comments within those two files suggest that you modify that #define to obtain
   different effects, as opposed to overriding it in a different file.

No, you aren't expected to modify LONG_DOUBLE_TYPE_SIZE in i386.h.
You're expected to modify it in something which includes i386.h, such
as sco5.h.

The reason to modify it is to retain compatibility with an existing
OS.  I'm not sure it should be modified for soft floating point
support.  I think the actual bug is probably that the soft floating
point support doesn't work correctly for long double.

Ian