OpenSuse 12.1

If you are attempting to use OpenSuse 12.1 to build crosstool-NG, you will run into a multitude of small, annoying, but easily fixed problems. I am assuming you have already gotten your OpenSuse system built with the necessary tools to compile software – but there are a few quirks that prevent a proper build of ct-ng that need to be addressed.

First, you will need to fix the inclusion paths for some of the ncurses header files. This fix needs to be put in place just to get ct-ng to install on your system. Edit the file kconfig/nconf.h and change the lines:

#include <menu.h>
#include <panel.h>
#include <form.h>

To read:

#include <ncurses/menu.h>
#include <ncurses/panel.h>
#include <ncurses/form.h>

This will fix the “missing menu.h” error during the initial config and install of ct-ng.

The next issue you will run into is that ct-ng does not properly compile using GNU make 3.82 (which is the default version of make on OpenSuse 12.1). This can be fixed by choosing the ct-ng option to “Try features marked as EXPERIMENTAL” from the “Paths and misc options” menu. This will enable an additional main menu item called “Companion tools”. In side the “Companion tools” menu, select “Build some companion tools” and then select the option to build “make”.

Finally – at this point, you should be ready to issue the “ct-nt build” command – which will immediately bark at you about not setting LD_LIBRARY_PATH and quit. So, begin your ct-ng build with the following:

LD_LIBRARY_PATH=”” ct-ng build

Assuming you have chosen the appropriate options for the target system you are trying to build, you should be off and running.

NOTE: This does not detail the proper configuration and build process using ct-ng for your target system – nor does it tell you how to use ct-ng. This is just a guide to get around some of the pitfalls you will run into when attempting to use ct-ng on OpenSuse 12.1. The actual use of ct-ng is well outside the scope of this post.