"building binutils for target" question

Michael Zintakis michael.zintakis@googlemail.com
Fri Mar 25 15:35:00 GMT 2011


Many thanks for the prompt reply on this. I also take the opportunity to 
thank you for the absolute fantastic tool you have created - it is just 
brilliant and although I wouldn't say I built my toolchain without any 
hitches, it, however, saved me a *lot* of long fruitless hours of hard 
labour!!! Once again, a truly superb piece of work, thank you!

>> At the end of the process binutils for the target architecture 
>> (build=x86_64, host=target=powerpc) were also successfully "installed", 
>> though I cannot find any of them, apart from the shared objects which 
>> are all in sysroot! Executables like "ar", "ld" etc which should have 
>> been compiled and installed to run on the target system (powerpc) cannot 
>> be found anywhere (only those for the host arch are present). Am I 
>> missing a trick here or do I have to compile and install another set of 
>> binutils from source for my target image?
> The binutils for target will only build some of the binutils libraries.
> They are needed to build stuff like oprofile, and have to match the
> version of binutils used for in the toolchain. That's why there is the
> option.
In other words the "binutils for the target" are for sole use by the 
toolchain and nothing more, right? If so, that's fair enough, I just 
wanted to be clear on this.

Do you envisage any problems if I try to build and install a copy of 
binutils for the target in my image root (build=x86_64, 
host=target=powerpc) using the cross compiler built by the toolchain? 
Would that be a problem do you think?

> To build the complete binutils to run on the target (eg. ar, ld...)
> means to build a cross-native toolchain, which is not currently
> supported by crostool-NG ( although I'm working on it, but there's
> only 24h in a day! ).
No, no! I am happy with the "cross" build as it is. I am also happy to 
do one additional step and build binutils for the target - I am going to 
use the cross compiler from the toolchain to build *all* of the software 
for the target system anyway (including the kernel, another gcc etc) so 
one additional step won't make a huge difference.

>> As part of building the final image I also need to install GCC (which 
>> would only be run on the target arch, i.e. build=x86_64, 
>> host=target=powerpc) hence why I need all binutils executables (like ar, 
>> ld etc) also installed in that target.
> As said above, not currently supported. Sorry... :-/
No problem!

One additional query - ct-ng starts with installing the kernel headers 
and by what I looked at they are in sysroot.

For my target machine I also need to install the same kernel (although 
for different architecture which is the same arch as my files in 
toolchain's sysroot), so do I have to explicitly execute "make 
install_headers" for the target image sysroot or is there any trick I 
could use to "copy" the headers already installed in the toolchain's 
sysroot? Would that be enough?


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

More information about the crossgcc mailing list