[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2ch.scのread.cgiへ]
Update time : 11/15 23:12 / Filesize : 175 KB / Number-of Response : 839
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

UNIX使いなのにプログラミングできないヤシ



1 名前:名無しさん@お腹いっぱい。 [03/02/18 03:49.net]
いますか?

837 名前:名無しさん@お腹いっぱい。 [2025/09/20(土) 19:26:58.91 ID:EDd7Pddis]
>>809

sys_errlist[]がその例だよね。
動的リンクしてるはずなのに、コンパイルするとsys_errlist[]の文字列一式が
実行バイナリ本体に静的に埋め込まれてしまって何コレ?って思ったことある。
だからsys_errlist[]は使わずにstrerror()関数使え、ってなった。

今は直接は埋め込まずに、実行バイナリ本体に外部参照してるデータのサイズ分の
bss領域を確保しておいて、実行時に動的リンカーが共有ライブラリから
そのbss領域にデータ一式コピーするみたいな方法になってるけど
コピーが無駄なことに変わりはない。

838 名前:名無しさん@お腹いっぱい。 [2025/11/08(土) 19:37:23.40 ID:0cFUylTxV]
>>837

-fpicでコンパイルすると copyrelocにはならず、sys_errlistもGOTを使った間接参照になるよ。
-fpicじゃなくて-fpieの方だと依然として copyrelocになるので注意。

もっと身近に、stdoutとかstderrも、この外部変数を直接プログラム中に記述すると
copyrelocになる。-fpicにするとGOT経由になる。

(暗黙にstdoutが使われるprintf()とかはstdoutを直接記述してないので copyrelocにならない)






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<175KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef