[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

cross-vax-netbsd & binutils problem?



こんにちは.新名といいます.

cross-vax-netbsd というものを書いてしまったのですが,
こんなのが必要な方はいますか?

興味のある人はこちらからどうぞ:
http://www08.u-page.so-net.ne.jp/rb3/yesu/vax/patches/cross-vax-netbsd.pkg.diff


それと,これでカーネルをクロスリンクする際に
  pmap.o(.text+0xd3): relocation truncated to fit: DISP32 etext
と怒られたので気がついたのですが,

binutils/bfd/reloc.c:1523:
 	case complain_overflow_signed:
 	  {
	    /* Assumes two's complement.  */
	    bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1;
	    bfd_signed_vma reloc_signed_min = ~reloc_signed_max;

ここ->	    if (signed_check > reloc_signed_max
		|| signed_check < reloc_signed_min)
	      overflow = true;
	  }
	  break;

32bit-only BFD な環境では
  typedef long bfd_signed_vma;
となっているので,DISP32 の場合「ここ」は意味を持ちません.
#ところで DISP32 って何なんでしょうか :-p

そのおかげで native vax では何事も無かったかのように
リンク出来てしまいます.

個人的には非常に気持悪いのですが,手元の vax はその
カーネルで問題なく動いているようなので,おそらくこの
エラーは無視するのが「正式な方法」だと思うのですが…

本当はどうなんでしょう?

-- 
--  Shinmyoh Koji <yesu@rb3.so-net.ne.jp>

panic: uvm_km_suballoc: unable to allocate space in parent map