|
Message
From: Matjaz Breskvar<phoenix@o...>
Date: Wed Dec 17 23:23:41 CET 2003
Subject: [openrisc] or32-gcc: Current status + new version
Great work!I'm going to try your patches on uClinux & linux and if it builds them i'm all for merging it into opencores mainline. The binary size savings are nice too.
I'd like to caution you about -msoft-mul. I've only briefly checked it after i've implemented it but i didn't do any extensive testing. It *should* work ok, but don't count on it. ;)
The toolchain issue reamaining i know of is ld with -r flag. I tried the Scott patches but the linker then just core dumped. I didn't have time to really look into it... I'll fix this as soon as i have some time since many bugs i saw that *look* like gcc are actually because of linker.
i'm also interested why you say that opencores gcc with -O2 is buggy. i tried building linux & uclinux with it and it worked just as good as with -O flag. can you provide some more details...
best regards, p.
* Heiko Panther (heiko.panther@w...) wrote: > Hi folks, > > there has been some confusion about the various gcc compilers and their > respective bugs or features. I did some research and a lot of > experimenting, and here's my summary. > > Testing objectives > > - I tested if the optimization (-O2) works by running eCos, which has in > the past produced errors in printf()-like routines when the compiler had > -O2 enabled. > - I checked if the gcc could build newlib (important for the folks who > don't run eCos or other OSes which include a libc). To achieve this, I > created symbolic links for newlib and libgloss from the newlib dir into > the gcc dir, and used the gcc --with-newlib configure option. > - Since it's important for me, I checked for availability of the > -msoft-mul flag. > - Lastly, I compiled my app, which includes eCos and a user application, > and noted down the binary size, compiled with -O2. Compilers that > produce buggy code with -O2 weren't checked. > > Test results > > opencores(oc) gcc-3.2.3 > -O2 buggy. Builds newlib. Has -msoft-mul. > > oc-gcc-3.2.3 Scott Furman version > Scott sent me his modification, which includes an ABI change. This means > you have to recompile everything, including libs, for use with this. > Scott says this modified ABI is faster, too. > When I built my app with this, it wouldn't come up - eCos died while > doing the static constructors. Didn't yet check why that happened. > Builds newlib. Has -msoft-mul. Binary size: 420k. > > University Cantabria (uc) gcc-3.4 > Is built with a developmental version of gcc-3.4, which is probably the > reason for not building newlib and the large binary size. > Fixes the -O2 bug without changing the ABI. Can't build newlib. Doesn't > have -msoft-mul. Binary size: 470k. > > > New version > > Based on this, I decided to put a new gcc together, taking the target > config from uc-gcc-3.4 and putting it into oc-gcc-3.2.3. I added the > -msoft-mul support from oc-gcc-3.2.3. No ABI change. newlib has to be > installed seperately (cd to newlib subdir of gcc build dir and make > install). > -O2 working. Builds newlib. Has -msoft-mul. Binary size: 385k. > > So, with this, we should have a reliably working and optimizing > compiler. The files and instructions are at > http://homepage.mac.com/hpanther/gcc-3.2.3-oc-to-uc-patch.tgz > > I invite you to try and build you apps and OSes with this version. If > everyone is satisfied (or no one complains, whichever happens first), I > shall put the files into CVS (given that I'm granted CVS write access, > wink wink. Otherwise, maybe one of the opencores maintainers will do that). > > Heiko
|
 |