This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Moving toolchain to other host


Martin Guy wrote:
On 1/22/10, Rod Nussbaumer <bomr@triumf.ca> wrote:
 Because I have had no end of problems getting ct-ng to build toolchains on
my normally designated development host (RHEL 4.X clone), I have created a
Debian 5.02 host for the sole purpose of running ct-ng.

Well, a separate question is, what were those problems and can you hack ct-ng to work round them? If you can do that in a portable way it would save other people's time in future. However, you may not have the time to do that.

It isn't really so much a matter of time, as the ability to bring all of the support tools up time version levels required to install and run ct-ng. I posted a message some time ago, querying whether the stated versions were required, and Yann replied that indeed they are.
As I become more acquainted with ct-ng and its inner workings, I feel certain that I will indeed kick back some hacks.




 Now, the question is, can I move those toolchains over to my RHEL 4.X &/or
RHEL 5.X host(s), in order to compile code to run on embedded targets? The
Redhat boxes are presently running kernels version 2.6.9 & version 2.68.18.

Like Joachim says, the kernel version in crosstool refers to the version of the kernel running on the target ARM host, not the one the crosstool-builder runs on, and is most likely to affect the building of the C library for the target.

Thanks. That makes sense. Can you confirm that the directory structure that was created by ct-ng on the original build host must be (or need not be) maintained on the new build host (there should be a name for that; how about 'refugee host'?).


And speaking of directory structures, I am still struggling with the nature of such directories. In the documentation, 'overview.txt', I see the command:
export PATH="${PATH}:/your/toolchain/path/bin"
My toolchain is in the default ${HOME}/x-tools/....
Within that tree, I can find no less than four 'bin' directories:


${HOME}/x-tools/i686-nptl-linux-gnu/bin
${HOME}/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu/bin
${HOME}/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu/sys-root/usr/bin
${HOME}/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu/debug-root/usr/bin

It would be nice if the doc's were a bit more explicit about which of these bin directories is considered to be '/your/toolchain/path/bin'. For the record, I've been trying to use '${HOME}/x-tools/i686-nptl-linux-gnu/i686-nptl-linux-gnu/bin', but I am unsure whether this is actually correct, and have no idea what pupose is served by the others. I can guess a little about the sys-root one, but the rest is a mystery to me.


Are there general rules
about what object code is runnable on other OS versions?

As long as they use the same ABI and have the same major version of the same C library (almost certainly glibc) you will usually be OK. The kernel is usually careful to keep ABI compatability. If you do have a mismatch it should become evident pretty soon, like the binaries refusing to run at all.

Thanks for the helpful replies Martin and Joachim.


--- rod.


-- For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]