2019年8月アーカイブ

armv5te環境にABIがarm-slackware-linux-gnueabiの開発環境を構築している。しばらくllvmなclangのビルドに失敗していた。もとのslackware-14.2の環境は古くて、最新の8.01のビルドには使えない。GNUのgcc/g++で構築をする必要があるが、Projectの構築がうまく行かない。仕方ないのでProjectを省略した形でビルドしてきた。エラーの原因はGNU gccなlibc++でATOMICなエラーが発生。LDFLAGSに-latomicを書くと良いと言う検索結果から、試しにスクリプトを修正して構築しなおしたら。うまくいった。ここにファイルは置いておく。

ビルドのコツは、debianからパッチを持ってきた。(必要かどうかはわからない)

以前のものはbinutilsのリンカーが動作しなかった。

   -DLLVM_HOST_TRIPLE=$SLK_ARCH_BUILDTARGET \
    -DCMAKE_C_COMPILER_TARGET=$SLK_ARCHBUILDTARGET \
    -DLLVM_DEFAULT_TARGET_TRIPLE=$SLK_ARCH_BUILDTARGET \
    -DCMAKE_ASM_COMPILER_TARGET=$SLK_ARCH_BUILDTARGET \

あたりで、arm-slackware-linux-gnueabiを強制してgccでコンパイル。出来たパッケージでprojectを含んでコンパイルしなおす手順で成功。最初からLDFLAGS=-latomicを試して入ればよかったかもしれない。

Slackwareのビルド環境がgcc-9.2に以降した。x86_64のMultibuildとarmの環境はまだ9.1のままだが、クロスコンパイルの環境を9.2へ以降する。今までの環境はARCH毎にコンパイルしてたままのバイナリーを用いている。通常のSlackwareはstrip --strip-unneededで不要な領域を削除したバリナリーを準備している。クロクコンパイルの環境も同様にstripした環境を準備する。stripコマンドはbinutilsパッケージに搭載されている標準のパッケージでは、対象環境が限定している為に、クロスビルドの環境(glibc)によってはstripが認識できないためにビルドが停止する。そのためbinutilsのターゲットはarm-elf, aarch-elf, i386-elf, x86_64-elf などがビルドできる環境に構築しなおす必要がある。

Raspberry Pi 4が発表されてしばらく経つ、早く日本でも使用できることを夢みて、方向性について検討。いつの間にか、Slarm64なる64ビットなSlackwarearmな環境もUnofficialに提供されている。Slamd64の同様にOfficialな動きに繋がることを機体する。

そこで、以前に検討していた64ビット化も方向の一つとして、動作環境を導入した。OfficalのSlackwarearm-currentと同じハードウェア(Raspberry Pi 3B+)にUSBに挿入したSDを作製し、ブート時rootドライブを/dev/mmcblk0pXか/dev/sdaXをcmdline.txtを書き換えることでブートできるように設定した。実は、Raspbery Pi 3B+は2台有しているので、もう一台を、ABIが-gunueabiな-march=armv5teのビルド環境と、ABIが-gnueabihfな-march=armv6zk環境な選択ブートなマシーンも準備した。

構築したパッケージは各々slackwarearmv5, slackwarearmv6, slackwarearmv8として置いておくこととする。パッケージの内容については保証されていない。

このアーカイブについて

このページには、2019年8月に書かれた記事が新しい順に公開されています。

前のアーカイブは2019年7月です。

次のアーカイブは2019年10月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

2019年10月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31