LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Find Resources
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Openrisc > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: Heiko Panther<heiko.panther@w...>
    Date: Wed Dec 17 22:17:11 CET 2003
    Subject: [openrisc] or32-gcc: Current status + new version
    Top
    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




    Follow upAuthor
    [openrisc] or32-gcc: Current status + new versionDamjan Lampret

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.