2004年08月04日

おうちでサーバ(その14: libc6-2.3.2 @ gcc-3.4.1)

libc6 再び

glibc-2.3.2ds1 を gcc-3.4.1 で build することによって,make 時の Segfault が回避可能か試してみよう計画.やっと libc6-2.3.2 が完成したのでインストール.

結果:やっぱりだめでした.

とりあえず,今回は strace があるので結果を貼ってみる.以下は strace debian/rules binary と打ってみた結果.

(略)
open("debian/rules", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0755, st_size=3298, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2956b000
read(3, "#!/usr/bin/make -f\n\nDEB_BUILDDIR"..., 4096) = 3298
pipe([4, 5])                            = 4
 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
 +++ killed by SIGSEGV +++
landisk# 

なるほど.pipe で死んでいる…んじゃないな.これは生還している.うーん,やっぱりgdbで追っかけてみないとだめかな.

…その前に gcc-3.4 -O1 とかで日和ってみる手もあるか?

おうちでサーバ(その13: gdb-6.1について)

gdb-6.1 おぼえがき補逸

以下はgdb/configureの10532行目からの引用.

host_makefile_frag=${srcdir}/config/${gdb_host_cpu}/${gdb_host}.mh
if test ! -f ${host_makefile_frag}; then
  # When building a native debuger the .mh file containing things
  # like NATDEPFILES is needed.  Cross debuggers don't need .mh
  # since it no longer contains anything useful.
  if test "${target}" = "${host}"; then
      { echo "configure: error: "*** Gdb does not support native target ${host}"" 1>&2; exit 1; }
  else
      host_makefile_frag=/dev/null
  fi
fi

ここで${srcdir}=gdb,${gdb_host_cpu}=sh4, ${gdb_host}=linuxということになっているらしい.したがって,ここの判定に成功するためには, gdb/config/sh4/linux.mhというファイルが存在しなければならない.

想像したとおり,gdb/config/shというディレクトリはあるが,gdb/config/sh4というディレクトリはない. まあ,これはlinkを張ってやればいいだけ.

問題は,

landisk# ls gdb/config/sh
embed.mt  nbsd.mh  nm-nbsd.h   tm-nbsd.h  tm-wince.h
linux.mt  nbsd.mt  tm-linux.h  tm-sh.h    wince.mt

…*.mhがnbsd.mhしかない.

ただ,この中身を見ると,

landisk# cat gdb/config/sh/nbsd.mh
# Host: SuperH running NetBSD
NAT_CLIBS=
NATDEPFILES= infptrace.o inftarg.o fork-child.o shnbsd-nat.o
NAT_FILE= nm-nbsd.h

というだけなので,gdbとsh4の両方についてちゃんと知っていればshnbsd-nat.c相当品(のlinux版) をでっちあげるだけでいけるばず.

…と,ここまで書いてふと思い立って「sh-linux-nat.c(mips-linux-nat.cからの類推)」 でぐぐってみたら,やっぱり誰か書いたことがあって存在するらしい.それなのになぜgdb-6.1に含まれないんだろうと思っていたら,

... See the -nat file associated with your target. In this case it's sh-linux-nat.c, if I remember right - which isn't in the FSF GDB sources (was never contributed :().

[Daniel Jacobowitz, 2004]

…そういうことだったのか.oTZ

2004年08月02日

おうちでサーバ(その12: gobjc-3.4)

gobjc-3.4

もともとgdb-6.1のbuildのために夜なべしかけていたgobjc-3.4を, やりかけのままほっとくのもしのびないので夜なべの続きをしてみた.…もう意味無いけど.

先日のffitarget.hの問題のほかは,特に何も無くbuild完了.ただ,そのままだとlibobjcを作ってくれず, gobjcがインストールできないのでwith_libobjc := yesとdebian/rules.defsのてきとーなところに書いて,再度debian/rules binary.完成.

glibc-2.3.2の野望再び

とりあえずgcc-3.4で試してみることにするか.だめもとで.

hddtemp

夜なべしすぎて51度とかいう数字になっていた.熱すぎて触り続けることができない.酷使しすぎ?

2004年08月01日

おうちでサーバ(その11: libc6失敗とgdb-6.1)(原題:「いろいろ」)

しまった

作れていたつもりになっていた libc6-2.3.2 だが,これを使うと make が Segfault を吐くようになってしまった.ためしに BSD pmake を apt-get して試してみたが同じ.ううう,戻すの面倒くさい….

さらにどつぼへの道

とりあえず,make tests をやり直してみる.それと,gdb がないとデバッグの効率が…と, ここまで手を出すのもどうかと思うが,とりあえず用意だけしておこう.う.gobjc に depend するのか.

…どこまでいくものやら.

gdb-6.1 おぼえがき

gobjc は上記の某所の管理人さんが夜なべされたものをご好意に甘えて使わせていただくことにした. というわけでgdb-6.1のbuildに挑戦.

なぜか gcc-3.3.4 だと,

cc -c -DHAVE_CONFIG_H -g -Wall -O2 -I. -I/root/gdb-6.1/libiberty/../include  -W -Wall -Wtraditional -pedantic
 /root/gdb-6.1/libiberty/strsignal.c -o strsignal.o
In file included from /usr/include/signal.h:358,
               from /root/gdb-6.1/libiberty/strsignal.c:23:
/usr/include/bits/sigthread.h:36: error: storage class specified for parameter `type name'

という謎のエラーが出る.私にはこのエラーが何を言っているのかわからない.当該箇所を見てみてもよくわからない.

…ためしに gcc-3.4.1 にしてみたら通った.oTZ

gdb-6.1 結果

あとは明日にしようと思ったら,*** Gdb does not support native target sh4-unknown-linux-gnu とか言ってきた.configure の該当箇所を見つけて,どうせ sh から sh4 へのリンクを張ればいいだろうとたかをくくっていた.

たしかにそれはそれで予想通りだったのだが,

…GDB-6.1 って NetBSD でしか native でデバッグできないんでつか? oTZ

もう寝よう.

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。