Soft Float for PC386

Smith, Gene Gene.Smith at sea.siemens.com
Tue Feb 5 15:25:05 UTC 2002


I installed the 4.5.0-preview rpms and now have the variant libraries under
/opt/rtems/i386-rtems/lib. When I build from scratch (bit_rtems i386
cp386sx) I still see f*** instructions. I suspect I might need to copy the
desired variant files (soft-float) into the lib directory and replace the
default libraries that are there (I will try this). Or is there a better way
to select the desired variant?

-gene

>-----Original Message-----
>From: Joel Sherrill [mailto:joel.sherrill at OARcorp.com]
>Sent: Monday, February 04, 2002 4:07 PM
>To: Angelo Fraietta
>Cc: Smith, Gene; rtems-users
>Subject: Re: Soft Float for PC386
>
>
>
>
>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