Suppose a set of custom-built gcc/glibc/binutils are in $prefix (e.g. /home/user/path)

I want:

  1. gcc to look for libraries in $prefix/lib64 instead of /lib64
  2. gcc to look for headers in $prefix/include instead of /include
  3. to use $prefix/lib64/ld-linux-x86-64.so.2 as the (hard-coded) loader path instead of /lib64/ld-linux-x86-64.so.2
  4. the dynamic loader to look for shared libraries in $prefix/lib64 instead of /lib64

How should I configure the builds? Do I need to modify gcc's specs file or do anything else?

link|improve this question

62% accept rate
feedback

1 Answer

up vote 1 down vote accepted

Try using crosstool-ng. It is a very good script that builds toolchain with a Kconfig interface (like Linux kernel has). It allows you to configure almost everything in the toolchain, and it has the settings you need.

I once made an arm-gnueabi toolchain with it, and it works in any directory I unpacked the .tbz2 to.

link|improve this answer
Thanks for the reference, I'll give it a try! – netvope Jun 7 '10 at 2:40
Unfortunately it does not support building cross-native (build!=host==target) tool-chain yet. – netvope Jun 15 '10 at 5:00
AFAIK there are no other similar utilities that support x86_64 (elinux.org/Toolchains#Toolchain_building_systems is a good overview). You can try just building the toolchain as usual, but set --prefix $prefix option for everything. (I think the toolchain building process is too complex to describe here, but --prefix trick has worked for me. Of course, it is much harder than using crosstool-ng, and you already need another cross-toolchain.) – whitequark Jun 15 '10 at 5:16
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.