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

[FDclone-users:00069] AIX でのコンパイルエラーについて



はじめまして、潮田ともうします。

さて、 AIX 上での FDclone2 の対応状況について質問いたします。
 AIX 4.3.3 のかなり古いメンテナンスレベルの OS 上で、
FDclone1 は、問題なく作成できていたような気がするのですが、
最近のメンテナンスレベルと FDclone2 では、うまくコンパイルが
通りません。
コンパイル及びリンクのエラーを黙らせることはできるのですが、
所詮対応ではなく回避(逃避)なので、できた実行モジュールが
実用に耐えません。
皆様のところではどうでしょうか。

状況説明
$ gzip -dc FD-2.02a.tar.gz | tar xf -
$ cd FD-2.02a/
$ make
(省略)
        cc -DFD=2 -DAIX=1 -O    -c -o info.o info.c
"info.c", line 780.13: 1506-099 (S) 使用している引数が正しくありません。
"info.c", line 781.28: 1506-099 (S) 使用している引数が正しくありません。
make: 1254-004 最後のコマンドからのエラー・コードは 1 です。

回避策1を実行

$ make
(省略)
        cc -DFD=2 -DAIX=1 -O    -c -o browse.o browse.c
"browse.c", line 21.10: 1506-296 (S) #include ファイル <sys/mkdev.h> が見つかりません。
make: 1254-004 最後のコマンドからのエラー・コードは 1 です。

回避策2を実行

$ make
(省略)
        cc  -o fd main.o term.o pathname.o  system.o posixsh.o doscom.o  dosdisk.o dosemu.o libc.o file.o apply
.o  parse.o builtin.o shell.o  kanji.o input.o info.o rockridg.o archive.o tree.o  custom.o command.o browse.o
-lcurses
ld: 0711-317 エラー: 未定義のシンボル: UP
ld: 0711-317 エラー: 未定義のシンボル: BC
ld: 0711-345 -bloadmap または -bnoquiet オプションを使用して、詳細な情報を得てください。
make: 1254-004 最後のコマンドからのエラー・コードは 8 です。

回避策3を実行

$ make
(省略)
        cc -DAIX=1 -O  -o mkunitbl mkunitbl.c
        ./mkunitbl fd-unicd.tbl
ターゲット "all" は最新のものです。

で何とか実行モジュールができます。
が、使用に耐えません。
テキストファイル(たとえは FDclone2 の README)にカーソルを合わせて
enter をたたくと、 PAGER が起動され、その PAGER を終了すると FD へ
戻ってくるのが正常な動作だと思います。
このモジュールでは、 PAGER から戻ろうとするとしばらく反応ががなくなり
Segmentation fault と表示され FD が消滅し shell へ戻ってしまいます。
実行しているディレクトリに書き込み権限はありますし、 core のサイズは
無制限にしてあるのですが core もできないようでお手上げです。
(情報提供ができないと言う意味で)

そもそもの回避策が誤りである可能性が大ですので、こちらの情報をお待ち
しています。



diff -uNr FD-2.02a/browse.c.orig FD-2.02a/browse.c
--- FD-2.02a/browse.c.orig      2002-12-25 00:00:00.000000000 +0900
+++ FD-2.02a/browse.c   2003-02-04 12:26:19.000000000 +0900
@@ -17,6 +17,7 @@
 extern int setcurdrv __P_((int, int));
 #endif

+/*                                       <= 回避策2
 #ifdef USEMKDEVH
 #include <sys/mkdev.h>
 #else
@@ -24,6 +25,7 @@
 # include <sys/mknod.h>
 # else
 #  ifdef       SVR4
+*/                                       <= 回避策2
 #  include <sys/sysmacros.h>
 #   ifndef     major
 #   define     major(n)        (((unsigned long)(n) >> 18) & 0x3fff)
@@ -31,6 +33,7 @@
 #   ifndef     minor
 #   define     minor(n)        ((unsigned long)((n) & 0x3ffff))
 #   endif
+/*                                       <= 回避策2
 #  else
 #   ifndef     major
 #   define     major(n)        (((unsigned)(n) >> 8) & 0xff)
@@ -41,6 +44,7 @@
 #  endif
 # endif
 #endif
+*/                                       <= 回避策2

 extern bindtable bindlist[];
 extern functable funclist[];
diff -uNr FD-2.02a/machine.h.orig FD-2.02a/machine.h
--- FD-2.02a/machine.h.orig     2002-12-25 00:00:00.000000000 +0900
+++ FD-2.02a/machine.h  2003-02-04 12:31:07.000000000 +0900
@@ -295,6 +295,7 @@
 #if    defined (_IBMR2)
 #define        SVR4
 #define        OSTYPE                  "AIX"
+#define        USETERMINFO                          <= 回避策3
 #define        TERMCAPLIB              "-lcurses"
 #define        NOTZFILEH
 #define        USESELECTH
@@ -303,7 +304,7 @@
 #define        USETERMIO
 #define        NOTMGMTOFF
 #define        USESTATFSH
-#define        STATFSARGS      4
+#define        STATFSARGS      2                   <= 回避策1
 #define        USEMNTCTL
 #define        USERE_COMP
 # if   defined (_AIX41)