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

[FDclone-users:00659] Re: compile error with _NODOSDRIVE



 しらいです。

In Message-Id <c8dd21e70611272101l10e69f8dw381adfa4a96a5475@mail.gmail.com>
        toyota <ug110@drive.co.jp>さんwrites:
> 豊田です。

> Linux 2.6.9 + FD-2.09a + gcc 3.4.5 の環境で、
> _NODOSDRIVE オプションをつけてコンパイルを行うと
> libc.o(.text+0x1bf): In function `_realpath2':
> : undefined reference to `_dospath'
> となってしまいます。
> libc.c の164行目が問題のようです。他の環境でも
> 試してみたのですが、同じ結果でした。

 む、条件の真偽を逆にしてしまっていたようです。compile 出来
ないだけならまだしも、_NODOSDRIVE をつけない場合はフロッピー
ドライブ上で「..」が扱えなくなってしまいます。
 以下の patch でどちらも解消されると思いますので試してみて
下さい。

---- Cut Here ----
diff -u ../old/FD-2.09a/libc.c ./libc.c
--- ../old/FD-2.09a/libc.c	Tue Oct 31 00:00:00 2006
+++ ./libc.c	Tue Nov 28 16:59:46 2006
@@ -160,7 +160,7 @@
 	if (n == 1) {
 		cp = strrdelim(resolved, 0);
 		top = resolved;
-#ifndef	_USEDOSEMU
+#ifdef	_USEDOSEMU
 		if (_dospath(resolved)) top += 2;
 		else
 #endif
---- Cut Here ----


> make CC=sh4-linux-gcc HOSTCC=cc CFLAGS="-DLINUX=1 -Os -D_FILE_OFFSET_BITS=64"
> としたのですが、最初の mkmfsed をコンパイルする際、
> HOSTCFLAGS が使用されずに CFLAGS を使用しているようです。

 TECHKNOW にも書かれていますが、cc の option は make 引数の
CFLAGS ではなく、config.h の EXTENDCCOPT で与えて下さい。こ
の場合ですと下記のような記述になると思います。
#undef	EXTENDCCOPT
#define	EXTENDCCOPT	"-Os -D_FILE_OFFSET_BITS=64"

 因みに HOSTCC の方は option を変更出来るような仕組みにはな
っていません。HOSTCC で生成されるのは最終成果物ではないので、
特に compile option は必要ないと思います。

                                               しらい たかし