前々からautoconfではなく、cmakeでのビルドを推奨していたLLVMだが、ついにautoconfのサポートが無くなってしまった。
そこでcmakeでのARMクロスコンパイラのビルド方法を記載しておく。
(1)LLVM(Clang含む)のソースコード一式を適当なフォルダに展開する
展開の仕方は公式のGetting startedを参照
(2)LLVMのフォルダとは別の場所にビルドフォルダを作成し移動する.
(3)以下のようにcmakeを実行すればMakefileが生成される
cmake <LLVMフォルダパス> -DCMAKE_CROSSCOMPILING=True -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="ARM;AARCH64" -DCMAKE_INSTALL_PREFIX=<ビルドしたバイナリのインストール先パス> -DLLVM_TARGET_ARCH=ARM -DLLVM_DEFAULT_TARGET_TRIPLE=arm-none-eabi
(4)make; make install
2016年10月31日月曜日
2016年8月11日木曜日
ARMクロスコンパイル用clang その2
ARMクロスコンパイル用clangの続き
普段使っているのがWindowsなのでWindows上でもARMクロスコンパイルclangを作成して見る
自作OS向けなのでベアメタルビルドでOK。
ライブラリ無しのコンパイラのみなのでビルドはシンプル。
普段使っているのがWindowsなのでWindows上でもARMクロスコンパイルclangを作成して見る
自作OS向けなのでベアメタルビルドでOK。
ライブラリ無しのコンパイラのみなのでビルドはシンプル。
■準備
msys2 32bit版を導入
(1) https://msys2.github.io/ から msys2-i686-[hhhhmmdd].exe をダウンロードして実行する
(2) メニューからMinGW-w64 Win32 shellを選択してターミナルを出す
(3) ターミナルからシステムアップグレード
pacman -Syu --noconfirm
(4) ターミナルを1度閉じる
(5) エクスプローラから C:\msys32\mingw32.exe を実行する
アップグレードするとメニューからのターミナル起動ショートカットがなぜか効かなくなるので直接実行
(6) clangビルドに必要なパッケージをインストール
pacman -S base-devel mingw-w64-i686-toolchain python --noconfirm
■binutils, clangをビルド
ビルド用スクリプトbuild-arm-clang.shを用意
(使用方法)
build-arm-clang.sh [binutilsバージョン] [llvm/clangバージョン]
何も指定しないとbinutils-2.27, llvm-3.8.1 になる
(使用方法)
build-arm-clang.sh [binutilsバージョン] [llvm/clangバージョン]
何も指定しないとbinutils-2.27, llvm-3.8.1 になる
2016年7月30日土曜日
Nginx + Redmine
■前提
nginx, Redmine(ruby, bundler, unicorn含む)はインストール済みとする
■nginxの設定
/etc/nginx/sites-available のサーバー設定に以下を追加
upstream unicorn {
server unix:[redmineインストールパス]/tmp/unicorn.sock fail_timeout=0;
}
server {} の中に locationを追加
location /redmine {
alias [redmineインストールパス]/public;
try_files $uri/index.html $uri.html $uri @unicorn;
}
location @unicorn {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
■Redmineの設定
sub-uri /redmine で動作するように若干変更
[redmineインストールパス]/config/routes.rb の以下の部分を変更
(変更前)
Rails.application.routes.draw do
root :to => 'welcome#index', :as => 'home'
・
・
・
end
(変更後)
Redmine::Utils::relative_url_root="/redmine"
Rails.application.routes.draw do
scope Redmine::Utils::relative_url_root do
root :to => 'welcome#index', :as => 'home'
・
・
・
end
■Redmineの起動
■nginx再起動
service nginx restart
nginx, Redmine(ruby, bundler, unicorn含む)はインストール済みとする
■nginxの設定
/etc/nginx/sites-available のサーバー設定に以下を追加
upstream unicorn {
server unix:[redmineインストールパス]/tmp/unicorn.sock fail_timeout=0;
}
server {} の中に locationを追加
location /redmine {
alias [redmineインストールパス]/public;
try_files $uri/index.html $uri.html $uri @unicorn;
}
location @unicorn {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
■Redmineの設定
sub-uri /redmine で動作するように若干変更
[redmineインストールパス]/config/routes.rb の以下の部分を変更
(変更前)
Rails.application.routes.draw do
root :to => 'welcome#index', :as => 'home'
・
・
・
end
(変更後)
Redmine::Utils::relative_url_root="/redmine"
Rails.application.routes.draw do
scope Redmine::Utils::relative_url_root do
root :to => 'welcome#index', :as => 'home'
・
・
・
end
end
■Redmineの起動
cd [redmineインストールパス]
bundle exec unicorn -c config/unicorn.rb -E production -D
これでunicorn経由でRedmineがデーモン状態で立ち上がる
■nginx再起動
service nginx restart
2016年2月14日日曜日
Gitoliteサーバ
■サーバ設定
・/var/lib/gitolite3/.gitolite.rc
UMASK 0700がデフォルト(rwx --- ---)。
redmine等の管理システムからリポジトリ参照したい場合は0027(rwxr-x---)としてグループからの読み込みも許可しておく
こうしないとgit でpushするたびにredmineからリポジトリ参照できなくなる
App 13972 stderr: fatal: Failed to resolve HEAD as a valid ref.
App 13972 stderr: fatal: Not a valid object name HEAD:
こんな感じのエラーログが出る。
■ユーザー追加
・Unixユーザー追加
・/var/lib/gitolite3/.gitolite.rc
UMASK 0700がデフォルト(rwx --- ---)。
redmine等の管理システムからリポジトリ参照したい場合は0027(rwxr-x---)としてグループからの読み込みも許可しておく
こうしないとgit でpushするたびにredmineからリポジトリ参照できなくなる
App 13972 stderr: fatal: Failed to resolve HEAD as a valid ref.
App 13972 stderr: fatal: Not a valid object name HEAD:
こんな感じのエラーログが出る。
■ユーザー追加
・Unixユーザー追加
useradd [ユーザーID]
passwd [ユーザーID]
・SSHキーペア生成
ssh-keygen -t rsa -b 2048
パスフレーズ入力して作成完了
id_rsa(秘密鍵), id_rsa.pub(公開鍵)の2つが生成される。
・gitoliteに追加
gitolite.conf のアクセスリポジトリにユーザーと権限追加
keydirフォルダに公開鍵を追加
登録:
投稿 (Atom)