2020/05/26

2020/05/26

# 研究目的

  • アプリケーションの信頼性を向上させるたい
    • その為には土台となる OS 自体の信頼性を高く保証したい
  • OSそのものも巨大なプログラムである
    • テストコードを用いた方法で信頼性を確保する事が可能
  • しかし並列並行処理などに起因するバグや、そもそもOSを構成する処理が巨大
    • テストで完全にバグを発見するのは困難
    • テスト以外の方法でOSの信頼性を高めたい

# 今週の進捗

  • brewでCbCGCCをcatalinaでビルドチャレンジ
  • シス管関連/プロ3の質問対応
  • 雑誌の投稿が編集部から返ってきたので編集
  • 発表資料作成
  • ゼミの初期を決めるルーレット作成
  • mkくんのgolangのコードを見たりした

# 小ネタ

  • PLDIがオンライン開催らしい

# brewでCbCGCCをcatalinaでビルドチャレンジ

  • ヘッダファイル関連のエラーを取り除きたいこともあり、 GCCをupdateしました
    • GCC_original, CbCGCCともにupdateしてます
      • CbCGCCのmergeは特にconflictが発生しなかった
  • catalinaで手でやったところ無事ビルドできました

# bottle化

  • mojaveのやつがそのまま使えはするが、/usr/includeが無いのでコンパイラを使用する際にオプションで指定する必要がある
  • --with-sysrootでsdkを指定すれば解決するので、その方法でビルドする

# 手作業でのビルド

  • gcc10.1.0から直接sdkを引数で指定すれば良いらしい
    • 以前は一回パッチをヘッダに当てる必要があった
1
 ../CbC_gcc/configure --prefix=$PWD --disable-nls --disable-bootstrap --enable-checking=tree,rtl,assert,types CFLAGS="-g3 -O0" --enable-languages=c --no-create --no-recursion  --disable-multilib --with-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
  • --with-sysrootで指定するsdkがぐぐると大体2種類存在する
    • /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
    • /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/
      • こっちの方は xcrun --sdk macosx --show-sdk-pathした際に返ってくるもの

Applications以下のものはよく見るとシンボリックリンクになってる

  • /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/

# brewでのビルド

  • brewの場合/Libraryのものを指定するとエラーが出る
    • xcodeのバージョンの関係?
    • 今朝Command Line Toolsのアップデートが入ってたので修正されてたかも
  • brewでビルドしようとするとヘッダファイル関連でエラーが出てあまりうまく行かない
    • libstd++のビルドが原因

# ボトルを作成する

 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
+ikoma+anatofuz$ brew install --build-bottle    AnaTofuz/homebrew-ie/cbcgcc
Updating Homebrew...
==> Installing cbcgcc from anatofuz/ie
==> Cloning http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_gcc
Updating /Users/anatofuz/Library/Caches/Homebrew/cbcgcc--hg
pulling from http://www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_gcc
searching for changes
no changes found
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
==> cd /private/tmp/cbcgcc-20200526-86302-qoy0ni;/private/tmp/cbcgcc-20200526-86302-qoy0ni/contrib/download_prerequisites
==> /private/tmp/cbcgcc-20200526-86302-qoy0ni/configure --prefix=/usr/local/Cellar/cbcgcc/10.0.1 --disable-nls --disable-bootstrap --enable-checking=tree,rtl,as
==> ./config.status
==> make -j 4
==> make install
==> Not running post_install as we're building a bottle
You can run it manually using `brew postinstall anatofuz/ie/cbcgcc`
==> Caveats
cbcgcc is keg-only, which means it was not symlinked into /usr/local,
because Conflict with various gcc.

If you need to have cbcgcc first in your PATH run:
  echo 'export PATH="/usr/local/opt/cbcgcc/bin:$PATH"' >> ~/.zshrc

For compilers to find cbcgcc you may need to set:
  export LDFLAGS="-L/usr/local/opt/cbcgcc/lib"

==> Summary
🍺  /usr/local/Cellar/cbcgcc/10.0.1: 674 files, 243.3MB, built in 30 minutes 37 seconds
  • bottle化
    • build番号が2になっている
    • 見なかったことに…..
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
+ikoma+anatofuz$ brew bottle    AnaTofuz/homebrew-ie/cbcgcc
==> Determining anatofuz/ie/cbcgcc bottle rebuild...
==> Bottling cbcgcc--10.0.1.catalina.bottle.2.tar.gz...
==> Detecting if cbcgcc--10.0.1.catalina.bottle.2.tar.gz is relocatable...
./cbcgcc--10.0.1.catalina.bottle.2.tar.gz
  bottle do
    root_url "https://homebrew.bintray.com/bottles-ie"
    rebuild 2
    sha256 "9465b16d6e5443290600bf9bb11c8d2c46f1d3992bcd5d56f85bd2c698e2e6eb" => :catalina
  end

# 発表資料

  • marpつかってやってます
  • 今までのスライドジェネレーターよりまともに動くので研究室のテーマを作りたい
    • まともに動く(空白のでかいページができない)
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy