and
how to get it running under AIX
|
|
Running KDE on AIX is possible, but there are some traps during the installation phase. This page will try to give you all information you need to install it without problems anyway. There is a collection of problems other people had while installating KDE here, please read this as well if you can't get your KDE running just by reading the guide. I would appreciate if KDE could support AIX in later releases completely, so that no assistance will be required to compile and install it from the source distribution. Many problems are of course not KDE specific but are caused by bugs in other programs required by KDE, such as libtool, gcc/egcs/Xlc, binutils or others. Distribution: If you just want to use KDE, you should get the source distribution of the beta4 release. You can obtain it, as well as the generic installation instructions at www.kde.org. Compilers:
I have currently no experience with the native C++ compiler that IBM ships for AIX. The last thing I heard is that it doesn't work correctly somehow. Then there are the GNU compilers. Other stuff you need: These are known to work under AIX, with other versions, I can not tell you the result:
And the following if you want to use CVS or compile the latest snapshots: Building shared libraries:
Problem description When you compile on Aix with no additional tricks, KDE will build no shared libraries. This means your binaries will be getting HUGE! (And I mean: really huge, I think your KDE installation may then exceed 500 MB of disk space without problems). This is since libtool doesn't (yet) know how to build shared libraries on Aix with gcc/egcs. But finally someone managed to do it, and sent me a mail. I'll put a translation here - and hope that these infos will be used in the future to make libtool able to handle this directly. Suggested fix: [...translation of the original mail...] I use KDE 1.0 on AIX 4.2, and it works great. There is just one small problem remaining: wild and uncontrolled changing of the active window freezes kwm. My configuration:With the collect2 modification (stolen from MICOs mico-shld.ld) the linking must be done manually (my libtool changes didn't work well enough), but now I have real shared libraries. Saves lots of memory ;) ... get the relevant file from the mico distribution here! The "fixincludes" problem: Problem description All gcc/egcs versions I know are using an egrep call in fixincludes. Without a correct run of fixincludes, the compiler will not bootstrap correctly and thus fail to build. Depending on how you get gcc, you may have a version where you get the binaries precompiled. Then, there of course is no bootstrapping, but the "fixed" includes will not allow proper compilation. The results are pretty unpredictable and depend on the gcc version you are using, and the aix release, and wether and which binutils you have/use. The egrep shipped with my Aix version (4.2) as well as the egrep shipped with Aix version 4.1 (and most likely a lot of others), are not?/sometimes not? able to perform the thing you'd like it to do: Callingecho test | egrep '[0-~]' on an Aix machine like that will result in an error message. The thing that is strange is that I only get error messages when I have set the locale to german (as I usually do) [LANG=de_DE]. You then get the message:Ungültiger Bereich innerhalb eines Ausdrucks zwischen [].Which translates to: Invalid range specified with an expression between [].Suggested fix: Set your LANG variable to en_EN when bootstrapping your compiler and run fixincludes. If you have this already (or no LANG setting), you don't have problems. So this problem only occures for non english speakers. I spent quite some time figuring out what was going on with my compiler, until I found this. I hope this helps. The "strip" problem:
On any AIX I know of, where binutils-2.8.1 is completely installed, compiling KDE is broken by default. The "strip" which is part of binutils doesn't seem to do it's job correct. But since KDE compiles with gcc -s by default, stripping is always tried. There are two possible workarounds: Use strip -V to get the version of strip you are currently using. If it is GNU strip 2.8.x or similar, use type strip to see where it is installed. Then use mv /usr/local/bin/strip /usr/local/bin/strip.gnu to rename it. After this, retyping strip -V should output something like strip: strip.c 1.37, and everything should compile cleanly. Use LDFLAGS=" ". Then you can strip the binaries after compiling them. As additional settings, something like CXXFLAGS="-g -O2 -mminimal-toc" might be required. (The last argument is the important one.) Without that, the size of the *.o-files can cause difficulties while linking. TOC overflows while linking:
collect2: ld returned 12 exit status ld: 0711-781 ERROR: TOC overflow. TOC size: 69296 Maximum size: 65536You can fix this if you add the option -mminimal-toc to CXXFLAGS. This means you should run CXXFLAGS="-O2 -mminimal-toc" ./configurein any KDE-directory instead of just ./configure. You need to do this for kdesupport and kdelibs as well as for the others (kdebase, kdeutils, ...). Other hints for beta 3:
Here is a collection of changes that you have to make, to get this or that program compiled. You can tell me if you know other changes to get other KDE stuff running under AIX, and I will publish it. But please don't forget to contact the author about the changes so that the next version of KDE will not need to be modified anymore for AIX. |