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

[FDclone-users:00608] Re: 仕切り直します。



こんばんは、田村です。

On Wed, 04 Oct 2006 01:20:30 +0900, Takashi SHIRAI wrote:

>  以前、func.h に MAXPATHLEN の記述を追加したと思いますが、
> これと同じことを MAXNAMLEN でもやってみましょうか。func.h の
> 一番最後に以下の 2 行を追加して下さい。
> 	#undef	MAXNAMLEN
> 	#define	MAXNAMLEN	255

>  これを加えて幾つかの組合せを試してみて下さい。
> 	a) readfilelist() の変更
> 	b) func.h の変更
> 	c) config.h の変更

まず別ディレクトリを作り、アーカイブを展開し make 、
素のfd v2.09 の動作確認する。

「/Users/yuji/012345678901234567/」
「/Users/yuji/Documents/10 blog/」
では、今のところ日本語を含むファイル名しか、消えない。
「/Users/yuji/Documents/」において
「1 shopping/」
「12 test2/」等 ASCII なディレクトリ名が消える事
を確認。

a) readfilelist() の「buf[1024]」で
「/Users/yuji/Documents/」において
「5 doc/」と言うディレクトリ名が消える事を確認
「/User2/yuji/Documents/」において
「1 shopping/」と言うディレクトリ名が消える事を確認

a) + c) readfilelist() の「buf[1024]」で
patch を当てて、config.h に3行追加
「/Users/yuji/Documents/」において
「10 blog/」と言うディレクトリ名が消える事を確認
「/User2/yuji/Documents/」において
「6 www」と言うディレクトリ名が消える事を確認

b) func.h に2行追加
「/Users/yuji/Documents/」において
「1 shopping/」と言うディレクトリ名が消える事を確認
「/User2/yuji/Documents/」において
「10 blog/」と言うディレクトリ名が消える事を確認

b) + c) func.h に2行追加、patch を当てて、config.h に3行追加
「/Users/yuji/Documents/」において
「10 blog/」と言うディレクトリ名が消える事を確認
「/User2/yuji/Documents/」において
「4 html/」と言うディレクトリ名が消える事を確認

ところで上記の結果ですが、特定のディレクトリ名が消える
と言う訳では無く、ランダムに消えるような感じです。
取りあえず一番始めに消えた時点でのファイル名を記載しています。

>  並行して [FDclone-users:00579] で MAXPATHLEN の値を調べた
> のと同様の手法で MAXNAMLEN の値も調べておきましょうか。

「255?n」となるようです。

>  Makefile に「#CPPFLAGS = -DUSG」って行があるので、この行頭
> の「#」を削除して make するとうまく行くかも知れません。

こっちでうまくいきました
-----
[yuji:~/work/malloc] yuji% make
cat gmalloc-head.c malloc.h valloc.c malloc.c free.c cfree.c 
realloc.c calloc.c morecore.c memalign.c > gmalloc.c-tmp
mv -f gmalloc.c-tmp gmalloc.c
chmod a-w gmalloc.c
cc  -DUSG -I. -c gmalloc.c -o gmalloc.o
-----
で良いのでしょうか?

一度 make してから fd を削除して
もう一度「make ALLOC='-L. -lmalloc' -f Makefile.tmp」
するのですね。ただ warning がいっぱい出てるんですけど
いいのでしょうか?

-----
[yuji:~/work/FD-2.09_2] yuji% make ALLOC='-L. -lmalloc' -f 
Makefile.tmp
cc  -o fd main.o printf.o termio.o term.o pathname.o system.o 
posixsh.o doscom.o log.o dosdisk.o dosemu.o pty.o termemu.o 
frontend.o backend.o libc.o file.o apply.o parse.o builtin.o shell.o 
kanji.o input.o ime.o roman.o dict.o info.o rockridg.o archive.o 
tree.o custom.o command.o browse.o -lcurses   -L. -lmalloc
/usr/bin/ld: warning multiple definitions of symbol _malloc
./libmalloc.a(malloc.o) definition of _malloc in section 
(__TEXT,__text)
/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(malloc.So) 
definition of _malloc
/usr/bin/ld: warning multiple definitions of symbol _realloc
./libmalloc.a(realloc.o) definition of _realloc in section 
(__TEXT,__text)
/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(malloc.So) 
definition of _realloc
/usr/bin/ld: warning multiple definitions of symbol _calloc
./libmalloc.a(calloc.o) definition of _calloc in section 
(__TEXT,__text)
/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(malloc.So) 
definition of _calloc
/usr/bin/ld: warning multiple definitions of symbol _free
./libmalloc.a(free.o) definition of _free in section (__TEXT,__text)
/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(malloc.So) 
definition of _free
-----

一応「fd」は出来てるんで、この状態で再現確認したのですが、

「/Users/yuji/012345678901234567/」
「/Users/yuji/Documents/10 blog/」
「/Users/yuji/Documents/」
「/User2/yuji/Documents/10 blog」
「/User2/yuji/Documents/」

割とひんぱんに再現していた、上記ディレクトリにおいて、
今のところは再現ゼロです。

>  なので自由にいじれるように「/User2」で実験します。この直下
> には「yuji」だけ置いて下さい。まぁ多少複雑な構成になっても構
> わないんですが、「/User2」以下の構成を完全に再現可能なように
> directory 構成を書いて下さい。
>  その上で、全く同じ「/User2」構成を他の環境に再現してみて、
> 現象の再現性を検証しようという訳です。この後の検証は小島さん
> の方でお願い出来ますか?

これなんですが、
-----
+--User2
 |  +--yuji
 |     +--Documents
 |        +--1 shopping
 |        +--10 blog
 |        +--11 98
 |        +--12 test2
 |        +--2 auc
 |        +--3 料金
 |        +--4 html
 |        +--5 doc
 |        +--6 www
 |        +--7 ride
 |        +--8 money
 |        +--9 id
 |        +--Acrobat User Data
 |        +--AppleWorks User Data
 |        +--EGWORD PURE 9 User Data
 |        +--FreeBSD_98
-----
と言う構成にしていたのですが、「/User2/yuji/Documents/」以下は
ファイルまで同じ構成にしていたのです、構成構築を楽にしようと思い
ディレクトリだけ残して、ファイルはみんな、削除したのですが、
それからは、素の fd v2.09 でも再現しないのです。

ファイル構成まで一緒にしないといけないのかもしれません。
念のため、もう一度「/User2/yuji/Documents/」以下へ
「/Users/yuji/Documents/」以下のファイルを書き戻して
見ました所、ディレクトリ名が消える現象は再現しました。

もしそうだとすると、他機で再現確認するのは難しいのではと言う気が
します。
もうちょっと再現確認して見ます。

---
yuji tamura