hns - 日記自動生成システム - Version 2.19.9

先月 2010年09月 来月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2010年09月07日(火) 旧暦 [n年日記] [更新:"2010/09/09 13:23:12"]

#1 [comp] 同じプログラムが 32bit/64bit OS で動作が違う

自分がかかわっている、C で書かれた、大きなプログラムがあって、 NetBSD/amd64 で動くのに NetBSD/i386 で動かない(らしい)。
本来 long int と書く必要があるところを int と書いているのかなぁ。 でも 64bit が必要な変数やデータ構造なんてないはずだけれど。
動かないと書いているけれど、殆ど動く。ある動作だけ変なのです。 また「らしい」と書いたけれど、全て自分の手元の話。どうもそうらしい、 という意味。問題の再現方法は分っています。
「gcc の warning を良く見る」というのもあるかな。

unsigned int と書くべきところを int としていると、そういう問題が起きることがある ?

はい、何か分ったら、ここか、ここから分るところに書きます (9/20 日頃までには解決する必要があるのです)。

実は、多分つまらない理由だった気がします。for 文の終了条件が不充分で、 暴走していたのですが、 64bit だと、偶然止ってくれたというような ことかと思います。

--- src/bfd/reloc.c     23 Feb 2010 06:53:43 -0000      1.23
+++ src/bfd/reloc.c     8 Sep 2010 03:09:51 -0000
@@ -5201,10 +5201,11 @@
          (unsigned int) reloc_count
 );
 #endif
+  int count = reloc_count;
   if (reloc_count > 0)
     {
       arelent **parent;
-      for (parent = reloc_vector; *parent != NULL; parent++)
+      for (parent = reloc_vector; *parent != NULL && count-- > 1 ; parent++)
        {
          char *error_message = NULL;
          bfd_reloc_status_type r =
でも実は cygwin (gcc-3.4.4) ではまだ動いていなくて gcc を 4 にすれば 良いのかなと思っています。(最新の cygwin でも 3.4.4.999 ?)
gcc4 という選択肢があったけれど、それを見る前に自分で gcc-4.2.1 を ./configure だけで make。しかし動作がおかしいのは変らない。

Comments related this article

Re: 同じプログラムが 32bit/64bit OS で動作が違う by masa    2010/09/07 19:04
面白い現象ですね。 通すデータの大きさでの違いは無い、つまりどんな大きさのデータ...
Re: 同じプログラムが 32bit/64bit OS で動作が違う by yozo    2010/09/11 14:59
同じく興味あり. ポインタの扱い? lint とかでソースコードチェックしたらあやしいと...
Re: 同じプログラムが 32bit/64bit OS で動作が違う by masa    2010/10/26 13:18
その後何か分かりましたか?
Re: 同じプログラムが 32bit/64bit OS で動作が違う by Makoto Fujiwara    2010/10/27 22:39
つっこみをありがとうございます。 最初に、09/07 に書いた件は、上に書いた通りで、...


最近の日記
2024年03月10日
停電 (瞬電)
2024年03月03日
the second try on bare-metal
useradd
2024年02月29日
opendkim and senmail
2024年01月24日
chat/iam 0.0.8
2024年01月21日
uselocale vs setlocale (textproc/R-readxl)
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)