27++'s Report

東京大学で行われた「大規模ソフトウェアを手探る」実験においてgccコンパイラーに機能の追加を行った。その際の奮闘を描いた日記(風レポート)。


このブログには東京大学電子情報・電気電子工学科にて行われた「外規模ソフトウェアを手探る」実験において使用の変更、追加を行ったgccについて書かれています。実験日に沿った日記風レポートとなっていますが、実際の進捗とブログの進捗には多少の差があることをここに断らせていただきます。
行ったことは"-o"オプションなしでhoge.cをコンパイルしたときhoge.outとなる変更、及び文末の";"の抜けを自動で補填する変更である。

まとめ(変更箇所の紹介記事リンクとgccの仕組み)

手探るgccのソースコードのダウンロード方法(初日)



a.outってなんやねん(3)

二日目に結局どこで"a.out"を決定していたのかわからなかった僕らは、直接"a.out"を出力ないし渡している関数があるのではないかと思い、grepコマンドに頼ることにした。

フォルダーを"/home/denjo/gcc-6.2.0/gcc"に指定して、ターミナルに
$ grep -r -I "a/.out"
と入力した結果、
collect2: output_file = "a.out"
なる一文を発見。そこでcollect2を覗いてみると…

f:id:bigsoftExp:20161129152855p:plain

あった!この"a.out"がデフォルトの名前を決めている!そうに違いない!

早速、この文を
output_file = "b.out"
い変更!これで標準の出力は"b.out"になってくれるはず!

〜Make中(wktk)〜

コンパイルしてみると…
$ ./gcc test.c
結果…

"a.out"が出力された;;
なんやねんこいつ、一体何を定義してんだよ(怒)
再びgrepで調べてみたところ、そもそも"DEFAULT_A_OUT_NAME"自体がどこにも定義されていなかった…ほんとにこいつは何をやっているのか結局わからず終いになってしまった。