6

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?

netvope
  • 5,215
  • 14
  • 57
  • 77

1 Answers1

2

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.

Catherine
  • 16,103
  • 5
  • 46
  • 55
  • Unfortunately it does not support building cross-native (`build!=host==target`) tool-chain yet. – netvope Jun 15 '10 at 05:00
  • AFAIK there are no other similar utilities that support x86_64 (http://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.) – Catherine Jun 15 '10 at 05:16