I compile with yaffs direct all the time. This is how I do all the YAFFS file systel "guts" development, using Linux. the directtest builds for me fine (with a few warnings) but the bootloader does not (missing nand_ecc.c). I shall fix that by moving it to yaffs_ecc.c The direct test in CVS should build fine. Please fetch from CVS again into a clean directory. More below On Saturday 11 December 2004 11:33, Michael Erickson wrote: > Hello all, > > Just wondering if anyone has actually ever used the direct interface. I > got the latest version out of CVS yesterday. When I try and build the > code I get the following error: > > [snip] > mikee 03:57 PM $ make all > ln -s ../devextras.h devextras.h > ln -s ../yaffs_ecc.c yaffs_ecc.c > ln -s ../yaffs_ecc.h yaffs_ecc.h > ln -s ../yaffs_guts.c yaffs_guts.c > ln -s ../yaffs_guts.h yaffs_guts.h > ln -s ../yaffsinterface.h yaffsinterface.h > ln -s ../yportenv.h yportenv.h > gcc -c -Wall -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_SHORT_NAMES_IN_RAM -g > dtest.c -o dtest.o > In file included from dtest.c:9: > yaffsfs.h:169: warning: no semicolon at end of struct or union > yaffsfs.h:169: error: syntax error before '.' token > yaffsfs.h:170: error: syntax error before '.' token > yaffsfs.h:171: error: syntax error before '.' token These messages don't seem to be consistent with the source. > dtest.c: In function `copy_in_a_file': > dtest.c:18: warning: implicit declaration of function `open' > dtest.c:21: warning: implicit declaration of function `read' > dtest.c:32: warning: implicit declaration of function `close' > dtest.c: In function `dumpDirFollow': > dtest.c:184: error: storage size of `s' isn't known > dtest.c:222: warning: int format, off_t arg (arg 3) > dtest.c:184: warning: unused variable `s' > dtest.c: In function `dumpDir': > dtest.c:229: error: storage size of `s' isn't known > dtest.c:267: warning: int format, off_t arg (arg 3) > dtest.c:229: warning: unused variable `s' > dtest.c: In function `long_test': > dtest.c:306: error: storage size of `ystat' isn't known > dtest.c:468: warning: int format, off_t arg (arg 2) > dtest.c:518: warning: implicit declaration of function > `yaffs_DumpDevStruct' dtest.c:306: warning: unused variable `ystat' > dtest.c: In function `cache_bypass_bug_test': > dtest.c:621: warning: unused variable `i' > make: *** [dtest.o] Error 1 > [/snip] > > I've searched through the code quite a bit but can't seem to come up > with what is wrong with the structure. It seems as though my development > system's header files are over-riding something. > > Is YAFFS direct compile-able on a Linux box? > Can I _not_ include standard headers? > > The documentation on the direct interface says the following: > > [snip] > Compilation Configuration > > Configuration is done in four places: > * yaffscfg.c: OS specific functions > * yaffscfg.h: Preferably only change YAFFSFS_N_HANDLES, the > number of files that can be simultaneously opened. > * yportenv.h: Preferably do not change this. > * Compile options. The valid compile options for the YAFFS > direct interface are: > * CONFIG_YAFFS_DIRECT must be enabled to use the direct > interface. > * CONFIG_YAFFS_SHORT_NAMES_IN_RAM define to enable short name > caching. This is suggested in cases unless RAM is very > limited. > [/snip] > > I checked yaffscfg.c and it appeared to have reasonably stubbed-out > functions which should allow the system to compile. > > Everything else listed there says to not change it. So, I guess I'm > stuck for the moment. > > Any input would be greatly appreciated. > > Thanks, > --mike