2017-05-16 5 views
0

während vpp Projekt in buildroot Verpackungssystem ein neue/ungewöhnlichen/unregelmäßigen Hostnamen Portierung entdeckt zu werden: Wie man das Skript für x86_64-mu-linux-gnu Host-Toolchain-Präfix repariert?

checking host system type... x86_64-mu-linux-gnu 

während in buildroot wenn x86_64 ausgewählt wird, der Standard-Toolchain

x86_64-linux 

erzeugt und symbolische Links in buildroot private toolchain namens one

x86_64-buildroot-linux-uclibc 

das ist comple wie üblich für Cross-Compilation-Builds.

x86_64-mu-linux-gnu auch kein Präfix für das Compiler-Tools-Set sein, stattdessen erschien, wird configure

x86_64-mu-linux-gcc, x86_64-mu-linux-gcc.br_real, x86_64-mu-linux-ar, etc 

die Frage sucht, ist:

, was das ist Best Practice, um diese "magische" Benennung (vor allem, um das zentrale "-Mu" -Suffix loszuwerden) in die normale, die in der buildroot toolchain verwendet wird, zu beheben?

würde wirklich geschätzt werden, wenn etwas Alternative zum Erstellen einer Reihe von Symlinks vorgeschlagen würde. (Vorzugsweise Fixierung innerhalb configure Scripting-System)

+0

für die schnelle Aktualisierung, die Datei für die ungewöhnliche Suffix Generation verantwortlich zu sein schien: https://github.com/vpp-dev/vpp/blob/master/build-root/Makefile wo der komplette ungewöhnliche Plattformname auf der Linie 179 fest codiert ist –

Antwort

0

hier ist der komplette Original-Block von Makefile über ein Problem hatte:

# OS to configure for. configure --host will be set to $(ARCH)-$(OS)    
# Allow per-platform overrides             

OS = $(strip $($(PLATFORM)_os))             
ifeq ($(OS),)                  
    OS = mu-linux                 
endif 

die Lösung für das Problem und der Grund für die unregelmäßige Suffixname entdeckt:

  1. vpp erwartet Sie PLATFORM Variable Definition der Architektur (etwas zu exportieren wie: i686, arm64, ppc64, x86_64, etc)

Beispiel:

PLATFORM=$(ARCH) 
  1. während vpp Kompilieren Projekt plattformübergreifend Es wird erwartet, dass eine spezielle Variable konfiguriert wird, die das Betriebssystem identifiziert, das Sie für die Zielplattform und diese Identifikation kompilieren werden n ist heikel

    • der Name der Variablen eine Synthese des Bogens Name wird nachfolgend „_os“ -Suffix. Der Wert der Variablen muss der Betriebssystemname sein.

    • wie für Linux auf x86_64 laufen Sie haben Variable exportieren dem Namen "x86_64_os" mit dem Wert "Linux" zugeordnet.

Beispiel:

x86_64_os=linux 

aber es ist besser wie folgt zu exportieren:

$(ARCH)_os=linux 
  1. Befehl Beispiel bauen resultierende aussehen wird etwas wie:

    PLATFORM=$(ARCH) $(ARCH)_os=linux make bootstrap 
    
  2. Für den Fall, dass Sie das Betriebssystem Ihrer Toolchain nicht identifizieren, definiert die Projektkompilierungsumgebung mu-linux als Hostbetriebssystem und kann die entsprechende Toolchain nicht finden.

Verwandte Themen