LoginSignup
13
12
エンジニアキャリアについてあなたの考えをシェアしよう!

LLVMソースコードコンパイルハマった罠。脱出するための努力。coding(83)

Last updated at Posted at 2018-03-22

LLVMのソースコードのコンパイルをしてみた。

Macintoshでやろうと思ったのがドツボだった。

さらにVMwareでUbuntuでやろうとしたら、メモリの割り当て不足でダメだった。

SWAP領域はMemoryより大きく
https://researchmap.jp/jom11s1ew-1797580/#_1797580

LLVM TEST SUITE FAIL RESULT on Linux and Mac OS X
https://researchmap.jp/joi0gsyic-1797580/#_1797580

現在、dockerで、、、

Macintosh

brew install --with-clang llvm

ここに到達するのに約ひと月。一つづつ試しては、、、。

brew install llvm
https://researchmap.jp/jociec00w-1797580/#_1797580

$ cmake --build . --target install
$ make check-all

* snip *

  Testing Time: 2076.17s
  Expected Passes    : 20893
  Expected Failures  : 140
  Unsupported Tests  : 438

OS X コマンドライン版cc (Clang LLVM cc)のインストール方法 (Xcode CLI / Command Line Tools for Xcodeのインストール)
https://qiita.com/k-oshima@github/items/61ae067984f0099cbdaf

LLVMエラー対処例
https://qiita.com/ssqiita/items/0c3b39f00124759a0cbb

xcodeで Apple LLVM error が出た時の対処
https://qiita.com/terrierscript/items/5c9d819aa31b8515d0e8

Homebrew で llvm 入れてる状態で brew doctor したら Warning 出たので対処した
https://qiita.com/bird_tummy/items/d9be70571bda9507d04d

OS XにLLVMをsvnインストールする
https://qiita.com/satzz/items/bee20a506ce29c39d042

portよりはapt-getを推奨。対応ソフトの大さから。

Debian/Ubuntu

[メモ] LLVM
https://qiita.com/uint256_t/items/ae74cb74c3c6cd7c445b

##Redhat/Centos
CentOS5にLLVMとclangをインストールする | CentOS
https://qiita.com/yukikimoto/items/78d4bdc218e98712c6a1

Windows

Visual Studioの設定について
https://qiita.com/lunatea/items/d1408fc1795579228cc3

Docker

llvm-clang環境のDockerを作ってDocker Hubにpushした。
https://qiita.com/nak1114/items/8cc97fa405be14a34181

LLVM

LLVM bitcode基礎知識
https://qiita.com/gamako/items/f37dbb05de9d3832ce6b

LLVMのプロファイル情報を紐解いてみた〜カバレッジ編〜
https://qiita.com/hydrangeas/items/1f2dd9c119f27bea89a0

オンラインでコンパイル結果のアセンブリを確認
https://qiita.com/ken1ma/items/2aa16a0d5dab00321aac

LLVM コンパイラ・インタプリタ

普通の大学生が【LLVM】やってみた
https://qiita.com/long_long_float/items/50ba0d9dc4075f3934a1

C++11インタプリタ Clingのビルド
https://qiita.com/mugwort_rc/items/3dead38e953ebb294051

正規表現からLLVMへのコンパイラを実装する
https://qiita.com/yyu/items/a0ef2d2204c137707f3f

OCamlのSedlex+Menhir+LLVMでLispコンパイラを作ろうとしたが行き詰まった件
https://qiita.com/Tamamu/items/e647c18403681df15c42

LLVMに実行可能コードの生成をまかせたい
https://qiita.com/k2ymg/items/653c5b22b74a091be604

Orelang(俺言語) の LLVM IR コンパイラを作ってみた
https://qiita.com/soramimi_jp/items/b7a0a9de381f3c320fe6

パターンマッチの作り方(1) はじめに
https://qiita.com/h_sakurai/items/04c242ea86810334cb1d

パターンマッチの作り方(2) LLVM入門
https://qiita.com/h_sakurai/items/20a858e7c96ead6e581c

パターンマッチの作り方(3) 変数
https://qiita.com/h_sakurai/items/494548cca6919c400a23

パターンマッチの作り方(4) 構造体
https://qiita.com/h_sakurai/items/612c82a6966616e2bd8d

パターンマッチの作り方(5) 構造体初期化構文糖
https://qiita.com/h_sakurai/items/fe5995ee7012965995a8

パターンマッチの作り方(6) ヴァリアントの型と領域取得
https://qiita.com/h_sakurai/items/43fd0b5d738dd14e723e

パターンマッチの作り方(7) ヴァリアント初期化構文糖
https://qiita.com/h_sakurai/items/46799cfce2ba85a09614

パターンマッチの作り方(8) switch構文
https://qiita.com/h_sakurai/items/8b1e7a39fa8cc9f6cc0c

パターンマッチの作り方(9) α変換
https://qiita.com/h_sakurai/items/e58fc82d8b84d00ea400

パターンマッチの作り方(10) パターンマッチ構文
https://qiita.com/h_sakurai/items/5b0e283f1f326453431e

パターンマッチの作り方(11) パーサと型チェック
https://qiita.com/h_sakurai/items/35ab73346da23bf23a7c

Rustで簡単なLLVMコンパイラ
https://qiita.com/h_sakurai/items/8d22c484179c48552abe

PHPで作る簡単なLLVMコンパイラ
https://qiita.com/h_sakurai/items/be48588ca7cd45fe2f24

LLVM コンパイル

LLVMをVisual Studio 2017でコンパイルする
https://qiita.com/lpha_z/items/6c81d310c78459d29c78#_reference-99fe2e2743cff80bc199

Macでclang+OpenMP 2016
https://qiita.com/r9y9/items/2e382887ee7e9fa0fb9f

[clang,llvm] clang・llvm開発時のリンクオプションの簡単な見分け方
https://qiita.com/kktk-KO/items/1ca16b5ae63a35c8a648

LLVM コーディング

[翻訳] LLVMコーディング標準(5.0.1)
https://qiita.com/tenmyo/items/7e4847b88e63d5769dd8

[翻訳] LLVMコーディング標準3.9.1(1/4):目次&はじめに
https://qiita.com/tenmyo/items/5d9fae50d941655350ca

[翻訳] LLVMコーディング標準3.9.1(2/4):言語、ライブラリ、および標準
https://qiita.com/tenmyo/items/e1194d8093b7a79abd5f#_reference-5c53985d45ed22fcf20f

[翻訳] LLVMコーディング標準3.9.1(3/4)機械的なソースの問題
https://qiita.com/tenmyo/items/eb0fd21212ff0184e933#_reference-9c1f65ef75b1d80b9c82

[翻訳] LLVMコーディング標準3.9.1(4/4):スタイルの問題
https://qiita.com/tenmyo/items/c452c5c527b743d4b96e

コンパイラ参考資料

大川知、鈴木大郎 著「コンパイラ 言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをMacintoshでコンパイル(C++版)
https://qiita.com/kaizen_nagoya/items/f49ca516f8a56aeed57a

大川知、鈴木大郎 著「コンパイラ 言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをMacintoshで実行(java版)
https://qiita.com/kaizen_nagoya/items/1606e97b7f10bf8fe519

大川知、鈴木大郎 著「コンパイラ 言語処理系の基礎からyacc/lexまで」近代科学社(2008)のソースをWindowsでコンパイル(C++版)
https://qiita.com/kaizen_nagoya/items/0fa79446472058bf8903

C,C++参考資料

C Puzzle Bookの有り難み5つ、C言語規格及びCコンパイラの特性を認識
https://qiita.com/kaizen_nagoya/items/d89a48c1536a02ecdec9

[C][C++]の国際規格案の例題をコンパイルするときの課題7つ。
https://qiita.com/kaizen_nagoya/items/5f4b155030259497c4de

MISRA C まとめ #include
https://qiita.com/kaizen_nagoya/items/f1a79a7cbd281607c7c9

コンパイル用shell script C版(clangとgcc)とC++版(clang++とg++)
https://qiita.com/kaizen_nagoya/items/74220c0577a512c2d7da#_reference-767b9a9b8f017bc681a1

C言語の配列は勉強できない仕様に変わったのか?
https://qiita.com/chesscommands/items/68d8237eccf5fac05e13

C言語規格と、Cコンパイラと、C言語記述の3つの関係を誤解されているように感じました。未定義の処理を自分が思おうようにしようと思ったら、自分でCコンパイラを書けば良いだけだと思います。

私がコンパイラを勉強した27年前、Pascalで書かれたコンパイラをCに書き直しました。3週間で書き直したソースが、3年かかってもバグが取れませんでした。デバッグモードでは動作するが、デバッグモード以外では動作しないという。その後MISRA Cというコーディング標準の仕事をするようになって、配列の管理がまずかったことが想定できました。チェッカを作ればよかった。

一覧

物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

言語・文学記事 100
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

自動車 記事 100
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

通信記事100
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

日本語(0)一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d

転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe

仮説(0)一覧(目標100現在40)
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

Qiita(0)Qiita関連記事一覧(自分)
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6

鉄道(0)鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0

安全(0)安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909

官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

「はじめての」シリーズ  ベクタージャパン 
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb

AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

LaTeX(0) 一覧 
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792

自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧 
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

小川清最終講義、最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.

文書履歴(document history)

ver. 0.01 初稿  20180823
ver. 0.02 ありがとう追記 20230502

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12