2022-11-01から1ヶ月間の記事一覧

1週間のまとめ 2022/11/06

今週に書いた記事について振り返る。 RISC-V Vector拡張のアセンブリを読み解く 異なる型同士の演算 - takumi9のブログ リンク基本事項 - takumi9のブログ この記事で最後に静的リンクに失敗して、次の記事では静的リンクに成功している。この二つの違いとし…

ExpressのsendFile()とrender()の違い

家庭教師でExpressを用いてWebアプリ制作の指導をしているのだが、renderとredirectが出てきて、それらの違いが何かと聞かれると説明するのが難しいし、実際その二つで異なる挙動を示すので、今回まとめてみることにした。 まず以下のようなコードを想定する…

リンカ基本事項 リロケーションの導入まで

今回シンボルに関する基本事項とリロケーションの導入まで行っていく。 ローカルシンボルが外部ファイルから参照できないことを確認する。そのために以下のsym0.sとsym1.sという2つのアセンブリファイルを用意する。 _start: mov $local_symbol, %rax mov $g…

リンカ基本事項 シンボルの導入

前回リンクについて軽くまとめたが、リンクする際にはリンカが必要なわけだが、リンカはどのような処理を行っているのかをまとめてみた。 まず大きく分けてリンカが行っていることは以下の二つである。 オブジェクトファイルをまとめて一つの実行ファイルに…

スタティックリンクとダイナミックリンクによって作成される実行バイナリサイズの違い

前回スタティックリンクとダイナミックリンクの違いを述べ、それぞれの方法でリンクした時のファイルのサイズを見ようとしたが、printfのスタティックライブラリが見つからなかったので、途中で断念してしまった。そこで今回は自分で関数を作ってそれをライ…