2016-03-31 12 views
5

ご存知のように、Bionicは、GoogleがAndroidアプリケーションを実行するために使用するCライブラリです。 Linuxマシンでコンパイルするための努力があるので、Android以外でも簡単に使用できます。これはもともとGentoo-bionicと呼ばれていた最新の取り組みからのコードです。オリジナルのプロジェクトはGentooベースでしたが、現在のソースはGentoo固有ではありません。私はUbuntuを使用しています。ここでは、コードです:x86_64 Linuxマシンでgentoo-bionicをコンパイルする

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年11月以来、私のは、Gentoo x86_64デスクトップ上でx86_64とi386用のbiionicをコンパイルします。必要なツール:glibc-targeting 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. のebuildバイオニック/バイオニック-5.1.1-r29.ebuildがきれいqmerge 2> & 1をインストールVERBOSE =インスタンス

    使用する、出力をキャプチャして実行します|ティー/ tmp /バイオニック。このようなコマンドが終了したら

COUT、あなたは、GCC /打ち鳴らす/ LD/arコマンドラインでパッチを当てたソースツリー、中間及び最終コンパイル結果、および完全なビルドログを取得します。

+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ファイルはありません。だから、あなたは別のターゲットを使用する必要があります。

関連する問題