-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESR60対応 #60
Comments
ビルドには、これまでの手順に加えて、rustupで最新のRustをインストールする必要がある
あとgcc-4.9以上が必要。Ubuntu-14.04だとつらいかも。Ubuntu-16.04ではビルド可。 |
パッチの移植はまだできていない。 ただしWaylandパッチはmozilla-centralにマージされており、追加パッチ無しでビルドできるようになっている。 |
meta-rustで対応する方法も検討中だが、入ってるRustのバージョンが追いつかなくなったので保留中。 |
現在遭遇している問題
|
知ってる話書いておきます 60の段階だと--disable-styloは有効ですが、将来的にはstyloオフにするオプション無くします。もしStyloをビルドするのであれば、こんな感じ(gcc-4.9.3を使ってるの例) で.mozconfigにBINDGEN_CFLAGSを指定してください (クロスビルドは必須) gcc-5.xだと多分armの生成コードの問題で色々問題あるので、4.9か6.4以降くらいじゃないと多分動かないです av1はnightlyビルドだけなので、stableチャンネルだとデフォルトでビルドされないはず。armだとビルドする設定にはなってるけど、あれビルド通らないです (Makefile.inでアセンブラコード生成するコード書き忘れてる) webrtcのコードはGYPからGNに移行した段階で壊れてるのですが、というかそもそも59くらいからLinux/armだとビルド通らないコードになってる |
情報ありがとうございます!試してみます! |
確かに、gcc-4.9で動くバリナリが作成できることを確認できました。 Yoctoの場合はYoctoで導入するgccも入れ替える必要があるので、手順をまとめる必要がある。 |
現状は以下の手順(レシピを直接変更しなくて済むようにしたい):
diff --git a/meta-rzg1/conf/machine/include/rzg-providers.inc b/meta-rzg1/conf/machine/include/rzg-providers.inc
index b5d6993..83f0e40 100644
--- a/meta-rzg1/conf/machine/include/rzg-providers.inc
+++ b/meta-rzg1/conf/machine/include/rzg-providers.inc
@@ -6,4 +6,4 @@
#PREFERRED_VERSION_gcc-crosssdk-initial = "linaro-5.2"
#PREFERRED_VERSION_gcc-crosssdk-intermediate = "linaro-5.2"
#PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "linaro-5.2"
-GCCVERSION = "linaro-5.2"
+GCCVERSION = "linaro-4.9"
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
index 852a316..d3b30bb 100644
--- a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
@@ -8,7 +8,7 @@ BINV = "4.9.4"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-${PV}' ], d)}"
-SRC_URI = "https://releases.linaro.org/${MMYY}/components/toolchain/gcc-linaro/${BASEPV}/gcc-${PV}-${RELEASE}.tar.xz \
+SRC_URI = "https://releases.linaro.org/archive/${MMYY}/components/toolchain/gcc-linaro/${BASEPV}/gcc-${PV}-${RELEASE}.tar.xz \
file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
file://0002-uclibc-conf.patch \
file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \ |
教えてもらった方針でStyloをビルドできることは確認できたが、Yoctoでどう汎化させてレシピに落とし込むかというところが悩みどころ。 以下、関連箇所のメモ:
|
Yoctoのバージョン毎に使えるgccのバージョンを調査してみた:
|
状況としては以下のような感じ
RZ/G1Mの場合 関連コード if rustc_target is None:
rustc_target = rust_supported_targets.per_raw_os.get(
(host_or_target.cpu, host_or_target.endianness,
host_or_target_raw_os)) |
これがなければ、 |
GNの対応は以下で行われたようだ。 media/webrtc/gn-configs/に各ターゲット向けの設定があるが、ここにLinux/ARMのターゲットがないためにビルドできないようだ。ここのファイルの生成は
で行い、media/webrtc/trunk/gn-output/に生成されたjsonファイルをmedia/webrtc/gn-configs/に置いて
でmoz.buildを生成し直すと、Linux/ARM向けにもビルドできるようになる。 ただし、GnConfigGenの際にgnコマンドが必要になる。 ビルドの際には新しめのninjaが必要になる。以下から最新版をダウンロードするのが無難 |
生成済みのjsonをfirefox-60-wipブランチに入れた(gnやninja不要) |
WebRTC on Linux/ARM関連Bug |
GCC を 4.9 に落とすのではなく逆に最新の GCC にしていく方向を検討する場合のためのメモ:
|
GCC 4.9 は捨てて GCC 6 移行にしたいという bug は立っているが Hazard builds が GCC 6 に移行できるまで無理といって今のところはなしは止まっている。GCC 4.9 のサポートは ESR 的には ESR60 が最後になるのかも?バージョンアップ毎に移行をせずに済むと良いのだが。。。 |
OpenMAXパッチが動作するようになったのでレシピに投入した せっかくmozilla-centralに追いついたのでパッチの整理はもう少し進めたいが、そのへんはBuzgillaの方で |
これである程度は動くのだが、しばらく使ってみると、動画をいくつも再生しているとやがて再生が止まるとまるという問題があることが発覚。まだ何かおかしそう。 |
ビルド手順の検証がてらに、Vagrant Boxを作ってみている VagrantとVirtualBoxが入っている環境なら、以下でビルドまでいけると思う。 ホスト側:
ゲスト側:
ただし、今は取得するFirefoxのリポジトリがgecko-devのmasterに向いているので、その時の状況次第ではビルドに失敗することもあると思う。実際、これを書いている時点ではANGLEのビルドで引っかかる(誠さんの修正が入れば解消する)。 プロプライエタリドライバのダウンロードは自動化するわけにはいかないので、ちょっと面倒だけどここは手動でやってもらわないといけない。 |
一応、以下でStyloのビルドも通るようにしてある(まだやり方が雑だが)
|
名前の付け方しくじったな...対象Geckoバージョンはbranchかtagで切り分けておくべきだった。 |
修正した |
名前変えた GitHubって割とカジュアルにリポジトリのリネームできるのね。 |
追いついたようだけど、そのままではビルドが通らなかったので試行錯誤中。 |
EGLパッチもFirefox 60向けに更新したものをレシピに投入しておいた。 もう少し改善したいところはあるが、その辺はBugzillaの方で。 ちなみにFirefox 52の頃はGDK側と描画処理が取り合っていてワークアラウンドを入れないとまともに描画ができていなかったので、GdkGLContextに対応したGLContextProviderを新規に作る形で根本的に書き直さないといけないと考えていた。が、Firefox 60ではGecko側で独自のwl_surfaceを作るようになってGDK側と描画を取り合うことがなくなったので、本パッチのようにGLContextProviderEGLをほぼそのまま使う形で行けるようになった。 |
core-image-westonをスクラッチからビルドするときにエラーになる問題が発覚したので、コメントアウトした。Styloをビルドしたい場合は該当箇所をアンコメントし、一度Firefox抜きでcore-image-westonをビルドして、Firefoxをビルドする必要がある。 meta-rustを導入すれば |
と思ったら、そんなことはなかったのでそのことについて調査中です。 |
こっちにも記しておきます。 |
meta-rustについても https://github.com/webdino/meta-browser/tree/firefox-60-wip-with-meta-rust ブランチにてビルドに使用できることを確認済み。このブランチではrustupのインストールが不要になった。 |
別件でlibrsvgのクロスビルドの方法を調べていたら、Rustのtarget指定に関するドキュメントが見つかった。 |
60ESRのソースが公開されたので、作業ブランチを |
以下にて進行中。 https://bugzilla.mozilla.org/show_bug.cgi?id=1438144 EGLパッチ自体はほぼそのまま本体に入った。 |
ESR60対応のブランチとビルド手順は公開済み: 課題は残っているが、ESR60のビルド・動作は一応確認できているので、本issueはそろそろ閉じて個別のissueに分けた方が良さそう。 |
こちらのissueは閉じます。 |
ESR60に向けた調査を以下のブランチで開始している。
https://github.com/webdino/meta-browser/tree/firefox-60-wip
ざっとビルドは通るようにしたが、まだ動作は確認できていない(起動直後にクラッシュ)
The text was updated successfully, but these errors were encountered: