Step 0 to next BeleniX

For the next BeleniX we are planning to pull some binary packages out of OpenIndiana and build some from source ourselves. The primary things we need at this point include the base Gcc 4.5 compiler toolchain and properly working RPM5 packaging. We subsequently need an importer to convert IPS binary packages into RPM5 since we want to pull some stuff from OpenIndiana (like Gnome).

I was playing around with RPM5 on OpenIndiana and now have a working setup, though not properly bootstrap packaged yet. The other major task was to get Gcc 4.5.2 built with all features enabled. It was quite a task given that C++ GMP stuff is involved and that the Gcc 4.3.2 compiler on OpenIndiana is heavily broken and buggy.

Details of how I got to a properly working Gcc 4.5.2 toolchain is here:

One interesting new feature in Gcc 4.5 is the support for Link Time Optimizations which begins to match what is being offered by the Interprocedural Optimizations feature in SUN Studio. The Gcc 4.3.2 piece in OI has at least these problems:

  1. It provides which the compiler looks for libssp_nonshared.a. Libssp is used if compiler options to provide stack protection are enabled.
  2. It provides an improperly linked libstdc++ as a result of which C++ exception handling is broken with g++. The library search order in libstdc++ should first be followed by since there exists the same stack Unwind handler function in both with different parameters. TheĀ  libgcc_s version is what libstdc++ needs to use.
  3. It is not able to compile the Parma Polyhedra Library required by Gcc to support loop optimizations via advanced Polyhedral methods. Some C++ template handling seems to be broken.

In any case now that I have the Gcc 4.5.2 toolchain working properly I would be re-building RPM5 with that and creating a bootstrap framework next.


3 thoughts on “Step 0 to next BeleniX

  1. Alan Pae

    There is a modified source code drop for Parma which you can find at this url:

    I got it compile following and left my notes here:

    What the developer was really asking for was a fully configured machine that he could have access to so he could sort out the issues. Since I’m behind a Firewall/NAT that I don’t control I wasn’t able to give him that access. Maybe you could and then this issue would go away.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s