Wie baut man ein autarkes gcc / glibc / binutils-Set in einem nicht standardmäßigen Pfad?

2485
netvope

Angenommen, ein Satz von benutzerdefinierten Elementen gcc/glibc/binutilsbefindet sich in $prefix(zB /home/user/path)

Ich will:

  1. gccBibliotheken suchen $prefix/lib64statt in/lib64
  2. gccnach Headern suchen $prefix/includeanstatt in/include
  3. zu verwenden, $prefix/lib64/ld-linux-x86-64.so.2als der (hart codiert) loader Pfad anstelle von/lib64/ld-linux-x86-64.so.2
  4. der dynamische Lader, in dem nach gemeinsam genutzten Bibliotheken $prefix/lib64anstelle von gesucht wird/lib64

Wie muss ich die Builds konfigurieren? Muss ich die gccSpezifikationsdatei ändern oder etwas anderes tun?

6

1 Antwort auf die Frage

2
whitequark

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.

Leider unterstützt das Erstellen von cross-native (`build! = Host == target`) Tool-Chain noch nicht. netvope vor 14 Jahren 0
AFAIK gibt es keine anderen ähnlichen Hilfsprogramme, die x86_64 unterstützen (http://elinux.org/Toolchains#Toolchain_building_systems ist ein guter Überblick. Sie können versuchen, die Toolchain einfach wie üblich aufzubauen, setzen jedoch die Option --prefix $ prefix` für alles. (Ich denke, der Prozess der Toolchain-Erstellung ist zu komplex, um hier beschrieben zu werden, aber der "--prefix" -Trick hat für mich funktioniert. Natürlich ist es viel schwieriger als "crosstool-ng", und Sie benötigen bereits eine weitere Cross-Toolchain. ) whitequark vor 14 Jahren 0