在x86_64 linux机器上编译gentoo-bionic

时间:2016-03-31 10:40:38

标签: android ubuntu compilation automake bionic

如您所知,Bionic是Google用于运行Android应用程序的C库。有人在Linux机器上进行编译,因此可以在Android之外轻松使用。这是最近一次努力的代码,最初称为Gentoo-bionic。原始项目是基于Gentoo的,但目前的来源不是Gentoo特有的。我正在使用Ubuntu。这是代码:

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 个答案:

答案 0 :(得分: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

include / machine文件夹中没有cpu-features.h文件。所以,你必须使用不同的目标。

答案 1 :(得分:2)

自2015年11月起,我的set of ebuid scripts在我的Gentoo x86_64桌面上为x86_64和i386编译仿生。所需工具:glibc目标GCC版本4.9.3或5.3.0; binutils 2.4.25或更早版本,glibc-targeting clang 3.5.0,make。

如果您可以在桌面上安装这些工具,则可以编译仿生。

但请注意,我的ebuild应用了大量补丁。

要了解他们的所作所为,您可以执行以下操作:

  1. 在x86_64台式机或笔记本电脑上启动实时Gentoo DVD。
  2. 安装我的脚本。
  3. 运行捕获输出,例如

    USE = verbose ebuild bionic / bionic-5.1.1-r29.ebuild clean install qmerge 2>& 1 | tee /tmp/bionic.cout

  4. 一旦这样的命令终止,你将获得修补的源代码树,中间和最终编译结果,以及使用gcc / clang / ld / ar命令行的完整构建日志。

相关问题