shared lib 問題の続き。問題となっている
/usr/lib/libc.so.12: Undefined symbol "" (reloc type = 12, symnum = 6)
というエラーメッセージ、 reloc type 12 を調べてみると R_SPARC_LO10 という名称になっている。
私の環境では shared library が全滅状態。調べてみると shared library に必ず リンクされる crtbegin.o がおかしいことに気付いた。
ダメな状態の /usr/lib では
-r--r--r-- 1 root wheel 1777 Jul 10 13:57 crtbegin.o -r--r--r-- 1 root wheel 1777 Jul 10 13:57 crtbeginS.o
となっている。 ftp.netbsd.org にある 4/12, 6/7, 6/20-1.5 の snapshot では いずれも
-r--r--r-- 1 root wheel 2198 Apr 12 05:55 crtbegin.o -r--r--r-- 1 root wheel 2198 Apr 12 05:55 crtbeginS.o
で明らかにサイズが違う。 objdump -r で再配置情報を調べてみると、 動かない版の crtbegin.o には
new/crtbegin.o: file format elf32-sparc RELOCATION RECORDS FOR [.init]: OFFSET TYPE VALUE 00000004 R_SPARC_HI22 .data 00000008 R_SPARC_LO10 .data 00000014 R_SPARC_HI22 .data+0x00000004 0000001c R_SPARC_LO10 .data+0x00000004 00000024 R_SPARC_LO10 .data [以下略]
のように R_SPARC_LO10 という reloc type のオブジェクトがある。 犯人をみつけたようだ。
さらに調べてみると、原因は簡単なことだった。 lib/csu/common_elf/Makefile.inc の中で
COPTS+= -fPIC
の指定があるのだが、私が /etc/mk.conf の中で
COPTS= -pipe
と指定していたので -fPIC の指定が上書きされてしまったらしい。 /etc/mk.conf を
COPTS+= -pipe
と直して問題解決。つまらないことで悩んでいた (^_^;;。お騒がせしました。
同じような毎日...。
3.5inch FD を大幅に整理。必要がありそうなものは CD-R にバックアップを とってから破棄。
机の上においてサブスピーカーとして *1使っている BOSE の 100Jの下にコインを入れてインシュレーターにしてみる。音がよくなったよ。 簡単なことなのに今まで何で実行していなかったんだろう。
爆笑してしまいました。 Black joke ではなく「正しい指摘」でしょうね :-)。
残念です。数日中に *BSD Diary Links からも消す予定です。
定員が埋まるのが早かったですね。申し込んでおいてよかった。さて、どういう名刺作ろうか。
某タぺストリが無事に届く。申し込み時から引っ越してしまったので 心配していたのだが、大丈夫でよかった。サイズはかなり大きい。これじゃ 飾る場所はないな (苦笑)。
八王子駅前に行って買い物。昼食を食べてから帰宅。
読んだ本ではないことに注意 :-)
八王子の駅前ということで、八王子そごうで昼食と買い物してきた。 客の入りは普段と変わらず。若干多いくらいかもしれない。異なるのは入り口に 張り出されている「お知らせ」を見るために立ち止まる人が多かったことと、 「商品券はそのまま使えます」という張り紙が店内各所に貼ってあったことくらいか。
八王子そごうは黒字店舗ということで、あまり問題がおきないのかもしれない。 八王子市内にある多摩センターそごうは急遽閉店してしまったし、柚木 *1そごうはとっくの昔に閉店している。
八王子市内だけで 3 つも店を作ったんだから、過剰投資だったのだよなぁ。
車の CD チェンジャー用に CD-R で 2 枚焼く。昨日買った CD から何曲か採用。
がいくつかたまっているんだけど、やる気があまりおきない...。
をひきかけているようだ。体調があまりよくない。