Soft Float for PC386

Joel Sherrill joel.sherrill at OARcorp.com
Mon Feb 4 21:06:34 UTC 2002



Angelo Fraietta wrote:
> 
> In am using snapshot rtems-ss-20010525 using the rpms of that date
> (which was around November) and paranoia is working fine. I have no
> co-processor on my machine and am using the pc386dx BSP.
> 
> Additionally, the floating point problem was resolved in Feb last
> year, so the RPMs from there should be fine
> 
> Smith, Gene wrote:
> 
> > I am trying to include soft-float on my rtems-4.5.0 386 system (no
> > coprocessor). This thread indicates there was (is?) a problem with
> > the
> > newlib rpms. I am using the newlib rpm updated in Sept for 4.5.0.
> > However,
> > the compile of paranoia fails due to undefined fp routines (I have
> > set
> > CPU_CFLAG = -msoft-float -mno-fp-ret-in-387).
> > Is it ok to use snapshot or preview rpms (need newlib1.9.0-1 per
> > below) with
> > my 4.5.0 system without totally upgrading rtems to the 4.5.1-preview
> > or a
> > snapshot? If so, which ones? (I see some that indicated they are
> > LATEST_TRUSTED.)

If you are using a 4.5 system, go with the RPMs in the
4.5.1-previews directory.  You need the right organization of 
c library header files so gccnewlib RPMs are 4.5 specific.  binutils
and gdb RPMs are generally more version independent.

> > Tks,
> > -gene
> >
> >> -----Original Message-----
> >> From: Angelo Fraietta [mailto:angelo at hunterlink.net.au]
> >> Sent: Tuesday, February 27, 2001 4:10 AM
> >> To: corsepiu at faw.uni-ulm.de; rtems-users; Joel Sherrill
> >> Subject: Re: Soft Float for PC386
> >> Wait on that, I have just found that there was another RPM
> >> made, being the i386-rtems-gcc-gcc2.95.2newlib1.9.0-1.i386.rpm
> >> as
> >> well as the rtems-base-gcc-gcc2.95.2newlib1.9.0-1.i386.rpm
> >> (I thought my machine had frozen up after the first RPM was made)
> >> I'll rebuild RTEMS and check again. Sorry about that.
> >> Angelo Fraietta wrote:
> >>
> >> > The computer no longer re-boots when running two tasks with
> >> >
> >> the -mno-fp-ret-in-387 flags.
> >>
> >> > However, there are still co-processor commands occuring.
> >> >
> >> This is where the exception occurs:
> >>
> >> > with CPU_CFLAGS =-msoft-float -mno-fp-ret-in-387
> >> >   10ba89: 5e                    pop    %esi
> >> >   10ba8a: 5f                    pop    %edi
> >> >   10ba8b: dd 45 f0              fldl   0xfffffff0(%ebp)
> >> >   10ba8e: c9                    leave
> >> > Ralf Corsepius wrote:
> >> >
> >> >>  Angelo Fraietta wrote:
> >> >>
> >> >> > If I build the pc386 with both the -mno-fp-ret-in-387
> >> >> >
> >> and the -msoft-float flags
> >>
> >> >> > the machine re-boots if you try to create a task. Eg, if
> >> >> >
> >> you try to run the
> >>
> >> >> > ticker sample, the machine re-boots.  If you only use
> >> >> >
> >> the -msoft-float and not
> >>
> >> >> > the -mno-fp-ret-in-387 flag, the tasks run OK.
> >> >> > I am mentioning this because the ts_386ex build uses
> >> >> >
> >> both flags, and so if
> >>
> >> >> > someone tests these on a ts_386ex, they may want to try
> >> >> >
> >> running ticker on it to
> >>
> >> >> > see if it crashes.
> >> >> >
> >> >>  This doesn't surprize me, because newlib unconditionally
> >> >>  inserts
> >> >>  FPU-code into its libc, no matter which compiler options are
> >> >>  used
> >> >>  for building it. I.e. at least one cause of your problems
> >> >>
> >> is lurking
> >>
> >> >>  in newlib.
> >> >>  I believe to have fixed this issue, so you could consider
> >> >>
> >> rebuilding
> >>
> >> >>  your gcc-newlib rpms, using the *.nosrc.rpm below, which
> >> >>
> >> contains my
> >>
> >> >>  fixes.
> >> >>  Procedure for rebuilding:
> >> >>  1) Copy gcc-2.95.2.tar.gz and newlib-1.9.0.tar.gz to
> >> >>  /usr/src/redhat/SOURCES.
> >> >>  2) rpm -i
> >> >>  i386-rtems-gcc-newlib-gcc2.95.2newlib1.9.0-1.nosrc.rpm
> >> >>  [This will install RTEMS diffs and my patches to
> >> >>  /usr/src/redhat/SOURCES]
> >> >>  3)
> >> >>  export PATH=/opt/rtems/bin:$PATH
> >> >>  rpm -bb
> >> >>
> >> /usr/src/redhat/SPECS/i386-rtems-gcc-newlib-gcc2.95.2newlib1.9.0.spec
> >>
> >> >>  [Now wait a couple of hours for the built to finish. Requires
> >> >>  500MB
> >> >>  to 1GB of free diskspace below /usr/src/redhat]
> >> >>  4) /usr/src/redhat/RPMS/i386 now should contain the new
> >> >>  i386-rtems-*.rpms
> >> >>  5) Rebuild RTEMS w/ -msoft-float -mno-fp-ret-in-387.
> >> >>  6) Test at run-time.
> >> >>  Hope that helps.
> >> >>  FYI: These patches already are submitted to Joel and to the
> >> >>  newlib
> >> >>  maintainers.
> >> >>  AFAIK, Joel already is preparing new RTEMS toolchain rpms.
> >> >>
> >> So if you
> >>
> >> >>  can't build the toolchain yourself for some reason, it's
> >> >>  probably
> >> >>  only a matter of days until new RTEMS toolchain rpms will
> >> >>  appear on
> >> >>  OAR's site.
> >> >>  Ralf
> >> >>  --
> >> >>  Ralf Corsepius
> >> >>  Forschungsinstitut fuer Anwendungsorientierte
> >> >>  Wissensverarbeitung
> >> >>  (FAW)
> >> >>  Helmholtzstr. 16, 89081 Ulm, Germany     Tel: +49/731/501-8690
> >> >>  mailto:corsepiu at faw.uni-ulm.de           FAX: +49/731/501-999
> >> >>  http://www.faw.uni-ulm.de
> >> >>
> >> >>
> >> ---------------------------------------------------------------
> >> ---------
> >>
> >> >>
> >> >>
> >>  Name: i386-rtems-gcc-newlib-gcc2.95.2newlib1.9.0-1.nosrc.rpm
> >>
> >> >>     i386-rtems-gcc-newlib-gcc2.95.2newlib1.9.0-1.nosrc.rpm
> >> >>
> >>  Type: RealPlayer(tm) as Plug-in (audio/x-pn-realaudio-plugin)
> >>
> >> >>
> >> >>
> >> Encoding: base64
> >>
> >> > --
> >> > Angelo Fraietta
> >> > PO Box 859
> >> > Hamilton NSW 2303
> >> > Home Page
> >> > http://users.hunterlink.net.au/~maaaf/
> >> > There are those who seek knowledge for the sake of knowledge
> >> >
> >> - that is CURIOSITY
> >>
> >> > There are those who seek knowledge to be known by others -
> >> >
> >> that is VANITY
> >>
> >> > There are those who seek knowledge in order to serve - that is
> >> > LOVE
> >> >     Bernard of Clairvaux (1090 - 1153)
> >> >
> >> --
> >> Angelo Fraietta
> >> PO Box 859
> >> Hamilton NSW 2303
> >> Home Page
> >> http://users.hunterlink.net.au/~maaaf/
> >> There are those who seek knowledge for the sake of knowledge -
> >> that is CURIOSITY
> >> There are those who seek knowledge to be known by others -
> >> that is VANITY
> >> There are those who seek knowledge in order to serve - that is
> >> LOVE
> >>    Bernard of Clairvaux (1090 - 1153)
> >>
> 
> --
> Angelo Fraietta
> 
> PO Box 859
> Hamilton NSW 2303
> 
> Home Page
> 
> http://www.users.bigpond.com/angelo_f/
> 
> There are those who seek knowledge for the sake of knowledge - that is CURIOSITY
> There are those who seek knowledge to be known by others - that is VANITY
> There are those who seek knowledge in order to serve - that is LOVE
>     Bernard of Clairvaux (1090 - 1153)

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel at OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985



More information about the users mailing list