uchan-nos / mikanos-build

Build and run scripts for MikanOS
Apache License 2.0
307 stars 79 forks source link

P73 リンクして生成したkernel.elfをreadelfで覗くことができない #25

Closed mkei29 closed 2 years ago

mkei29 commented 2 years ago

P73 リンクして生成したkernel.elfをreadelfで覗くことができません。readelfを実行すると始点にあるマジック番号が異なりますと表示されます。odコマンドで表示してみたところ確かに先頭数バイトがすべて0になってしまっています。コンパイル・リンク時に特にエラーも出ない状況で手詰まりとなってしまっています。もし心当たりがある方がいたら教えて頂けないでしょうか

【環境】 VirtualBoxを利用して作成したUbuntu20.04(ホストはmacos)

Screenshot from 2022-04-24 14-31-57

uchan-nos commented 2 years ago

@toritoritori29 謎ですね。main.oをreadelfで見てみたらどうなるでしょうか?

mkei29 commented 2 years ago

@uchan-nos ありがとうございます。 main.oはelfファイルとして認識されているようです。リンカ側が怪しいのでしょうか・・・ ansibleでインストールされるlldはversion7だと思うのですがversion7で同じような状況でうまく行かず、新しい別のversionで試してみたのですが解決されなかったです。 VirtualBox_ubuntu_11_05_2022_23_43_36

uchan-nos commented 2 years ago

手元では再現しません。

/media/share は共有ディレクトリでしょうか。 もしかしたら、共有ディレクトリではない場所(/home 以下とか)に mikanos ディレクトリをコピーしてからコンパイル&リンクしたら変化しないでしょうか。

それから、「ゼロからのOS自作入門」は可能であれば https://github.com/uchan-nos/os-from-zero/issues にお願いします。 次回の質問からで結構です。

mkei29 commented 2 years ago

遅くなりました。試してみます。 それから、「ゼロからのOS自作入門」は可能であれば https://github.com/uchan-nos/os-from-zero/issues にお願いします。 次回の質問からで結構です。 こちら失礼しました。ご丁寧に対応頂きありがとうございました。

mkei29 commented 2 years ago

こちらご指摘頂いたとおりにホームディレクトリ以下にファイルを再配置して、本に記載の通りの配置にしたら無事動作しました。まずは本の指示に従うのが大事ですね。クローズさせていただきます。