2016-03-31 15 views
5

Wie Sie vielleicht wissen, ist Bionic eine C-Bibliothek, die von Google zum Ausführen von Android-Anwendungen verwendet wird. Es gibt Bemühungen, es in Linux-Maschinen zu kompilieren, so dass es leicht außerhalb von Android verwendet werden könnte. Dies ist der Code von einer der neuesten Bemühungen, ursprünglich Gentoo-bionic genannt. Das ursprüngliche Projekt war Gentoo-basiert, aber die aktuelle Quelle ist nicht Gentoo-spezifisch. Ich benutze Ubuntu. Hier ist der Code:Kompilieren von Gentoo-Bionic auf einem x86_64-Linux-Computer

https://github.com/gentoobionic/bionic

Und das ist die Präsentation darüber auf ELC2013:

Ich versuchte es auf kompilieren X86_64 Ubuntu, aber fehlgeschlagen. Ich habe versucht:

./autogen.sh 
./configure 

Ich habe:

configure: error: unsupported host cpu x86_64 

Also habe ich versucht:

./configure --build=arm-linux --target=arm-linux --host=arm-linux 

Es konfiguriert in Ordnung, aber ich habe:

$ make 
make: *** No rule to make target `libc/arch-x86/include/machine/cpu-features.h', 
    needed by `all-am'. Stop. 

Gibt es eine Chance dass jemand einen Workaround vorschlagen kann?

Antwort

2

Seit November 2015 meine set of ebuid scripts kompilieren bionic für x86_64 und i386 auf meinem Gentoo x86_64 Desktop. Benötigte Werkzeuge: glibc-targeting GCC Version 4.9.3 oder 5.3.0; binutils 2.4.25 oder älter, glibc-targeting clang 3.5.0, make.

Wenn Sie diese Tools auf Ihrem Desktop installieren können, können Sie Bionic möglicherweise kompilieren.

Beachten Sie jedoch, dass meine Ebuilds zillionen von Patches anwenden.

Um zu sehen, was sie tun, können Sie die folgenden Schritte aus:

  1. Stiefel leben Gentoo-DVD auf einem x86_64 Desktop oder Notebook.
  2. Installieren Sie meine Skripte.
  3. Führen sie Ausgang erfassen, zum Beispiel

    USE = ausführlichen ebuild bionischer/bionic-5.1.1-r29.ebuild sauber qmerge 2> & 1 installieren | tee/tmp/bionic.cout

Sobald ein solcher Befehl beendet, erhalten Sie die gepatchte Quellbaum, Zwischen- und Abschlussübersetzungsergebnis und voller Buildprotokoll mit gcc/Klappern/ld/ar Befehlszeilen.

+0

Ich mache das, und ich hoffe, ich kann den gepatchten Quellbaum woanders leicht kompilieren. Hier sagte jemand: "Ein Ebuild ist eine einfache Textdatei (nichts anderes als ein Bash - Skript). Sie brauchen nur die Quelldatei und kompilieren die Quelle von Hand. Portage, der Gentoo - Paket - Manager, verwendet Ebuild - Dateien, um die Kompilierung der Quelldaten)." http://ubuntuforums.org/showthread.php?t=255187 Stimmt es? – Ho1

3

Ich weiß nichts über bionische. Ich möchte dir nur helfen. Als ich die configure-Datei sah, sah ich diesen Code.

Makefile.h.am:Line 135

if TARGET_ARCH_IS_X86 
includemachine_HEADERS += \ 
    $(addprefix $(top_srcdir)/libc/arch-x86/include/, \ 
     machine/fpu_control.h \ 
     machine/sigcontext.h \ 
     machine/wordsize.h \ 
    ) 
endif 

if TARGET_ARCH_IS_ARM 
includemachine_HEADERS += \ 
    $(addprefix $(top_srcdir)/libc/arch-x86/include/, \ 
     machine/cpu-features.h \ 
    ) 
endif 

configure.ac: Linie 94

case $host_cpu in 
    *i?86*) 
    TARGET_ARCH=x86 
    COMMON_LDFLAGS="${COMMON_LDFLAGS} ${COMMON_LDFLAGS_X86}" 
    COMMON_CFLAGS="${COMMON_CFLAGS} ${COMMON_CFLAGS_X86}" 
    COMMON_INCLUDES="${COMMON_INCLUDES} ${COMMON_INCLUDES_X86}" 
    COMMON_LDLIBS="${COMMON_LDLIBS} ${COMMON_LDLIBS_X86}" 
    ;; 
    *arm*) 
    TARGET_ARCH=arm 
    COMMON_LDFLAGS="${COMMON_LDFLAGS} ${COMMON_LDFLAGS_ARM}" 
    COMMON_CFLAGS="${COMMON_CFLAGS} ${COMMON_CFLAGS_ARM}" 
    COMMON_INCLUDES="${COMMON_INCLUDES} ${COMMON_INCLUDES_ARM}" 
    COMMON_LDLIBS="${COMMON_LDLIBS} ${COMMON_LDLIBS_ARM}" 
    ;; 
    *) 
    AC_MSG_ERROR([unsupported host cpu $host_cpu]) 
    ;; 
esac 

Es gibt keine cpu-features.h Datei auf include/Maschinen-Ordner. Also musst du ein anderes Ziel verwenden.