» | Kernel Trees | |||||
» | Tebecai | |||||
frodo.looijaard.name | » | Documentation | » | Glibc-2 (libc6) | » | Going on |
» | Copyrights | |||||
» | Introduction | |||||
» | Other docs | |||||
» | Overview | |||||
» | Downloads | |||||
» | Preliminaries | |||||
» | gcc | |||||
» | ld.so | |||||
» | binutils | |||||
» | libc6 | |||||
» | gcc (cross) | |||||
» | libc5 | |||||
» | libc++ | |||||
» | Cleaning up | |||||
» | Examples | |||||
» | Known problems | |||||
» | Essay | |||||
» | Changelog |
Note that this documentation is historic. It may no longer be very relevant. There will be no updates or further releases.
⇐ Previous | ⇑ Parent |
Next ⇒ |
If you have followed all the steps in this guide, you will now have a working cross-compiler installed. So now you can generate programs which are linked against glibc-2. But before you go on, there are a couple of things which are useful to know.
If you want to link a program to both glibc-2 and another library, that other library must also have been linked against glibc-2. So you can not use your existing ncurses and X-libraries, for example; you must first generate copies which are linked against glibc-2 (and put them into /usr/i486-linux-libc6/lib
).
I have tried to setup things in such a way, that glibc-2 stuff and libc5 stuff are kept completely separate. The cross-compiler must, for example, only have access to include files for which the corresponding library is also available in glibc-2 format.
When you compile programs and libraries with the cross-compiler, you can safely put the binaries in /usr/bin
instead of /usr/i486-linux-libc6/bin
. In fact, /usr/i486-linux-libc6/bin
would be a strange place to put them, because they would only be available if you put that in your path (presumably because you wish to use the cross-compiler). In fact, it does not contain glibc-2 executables, but regular libc-5 executables that do things with the glibc-2 format! But include files and libraries should always be put under respectively /usr/i486-linux-libc6/lib
and /usr/i486-linux-libc6/include
.
Lots of programs, especially all GNU programs, come with a configure command. When you have set the path to /usr/i486-linux-libc6/bin
, you have a i486-pc-linux-gnu
environment for all practical purposes. You can safely tell this to these programs.
I have written a small script that faciliates switching between compilation environments. There is one draw-back though; it only works if you use bash(1) as your shell. You call switch.sh
once, and after that you can use a new command switch
to switch between environments:
(bash) . switch.sh # the . is obligatory!
(bash) switch i486-linux-libc6
Subdirectories of /usr/local
are often used to install things you have compiled yourself, and want to keep when the operating system and/or distribution is updated. Regrettably, the cross-compiler does not seek within this hierarchy for its include-files and library-files. You will have to use explicite switches to set the seekpath if you want to install libc6-libraries or libc6-include files locally and use them to compile other things with.
⇐ Previous | ⇑ Parent |
Next ⇒ |