2016-03-31 5 views
5

Как вам известно, Bionic - это библиотека C, используемая Google для запуска приложений для Android. Есть попытки скомпилировать его на машинах Linux, поэтому его можно легко использовать вне Android. Это код из последних усилий, первоначально называемых Gentoo-bionic. Первоначальный проект был основан на Gentoo, но текущий источник не специфичен для Gentoo. Я использую Ubuntu. Вот код:Компиляция gentoo-bionic на Linux-машине x86_64

https://github.com/gentoobionic/bionic

И это представление о нем на ELC2013:

Я попытался скомпилировать его X86_64 Ubuntu, но не удалось. Я пробовал:

./autogen.sh 
./configure 

я получил:

configure: error: unsupported host cpu x86_64 

Так что я пробовал:

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

Он настроен отлично, но я получил:

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

Есть ли шанс что кто-то может предложить обходное решение?

ответ

2

С ноября 2015 года мой set of ebuid scripts компиляции bionic для x86_64 и i386 на моем рабочем столе Gentoo x86_64. Необходимые инструменты: glibc-таргетинг GCC версии 4.9.3 или 5.3.0; binutils 2.4.25 или старше, glabc-targeting clang 3.5.0, make.

Если вы можете установить эти инструменты на свой рабочий стол, вы можете скомпилировать бионический.

Обратите внимание, что мои ebuild применяют миллион патчей.

Чтобы увидеть, что они делают, вы можете следующим образом:

  1. Загрузочный жить Gentoo DVD на рабочем столе x86_64 или ноутбук.
  2. Установите мои скрипты.
  3. Выполнить их захват вывода, например

    USE = многословный Ебилд бионический/бионический-5.1.1-r29.ebuild чистой установки qmerge 2> & 1 | tee/tmp/bionic.соиЬ

После получения таких команд завершается, вы получаете дерево исходных исправленная, промежуточный и конечный результат компиляции, а также полный журнал сборки с GCC/лязг/л.д./ар командных строк.

+0

Я делаю это, и я надеюсь, что смогу скомпилировать исправленное дерево источников в другом месте. Здесь кто-то сказал: «ebuild - это простой текстовый файл (не что иное, как скрипт bash). Вам просто нужен исходный файл и скомпилировать источник вручную (Portage, менеджер пакетов Gentoo, использует файлы ebuild для автоматизации компиляции исходные файлы). " http://ubuntuforums.org/showthread.php?t=255187 Правильно ли это? – Ho1

3

Я ничего не знаю о бионике. Я просто хочу вам помочь. Когда я просмотрел файл конфигурации, я увидел этот код.

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: Строка 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 

Там нет CPU-features.h файл на включают в себя папку/машины. Таким образом, вы должны использовать другую цель.

 Смежные вопросы

  • Нет связанных вопросов^_^