This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: JFFS2 on ARM target
We see the same behaviour with GCC for MIPS. The version is:
mipsisa32-elf-gcc (GCC) 3.2.1 (eCosCentric).
On Wed, 2006-03-08 at 22:58 +0100, Andrew Lunn wrote:
> On Wed, Mar 08, 2006 at 03:08:22PM -0500, Doyle, Patrick wrote:
> > I'm confused by something I'm seeing with JFFS2 on my arm target, and I was
> > wondering if anybody else had seen anything similar.
> >
> > Basically, what I see is that when JFFS2 goes through and marks a block as
> > being erased, it seems to me that it should be writing 'JFFS2_MAGIC_BITMASK'
> > (0x1985) to the marker for the block. What I'm seeing is that 0x2003 gets
> > written into the marker field.
> >
> > Staring at disassembled code for a couple of hours makes me believe that
> > this is, in fact, exactly what the opcodes are telling the CPU to do,
> > despite what one would expect from looking at the C code.
> >
> > So now I'm curious... are there known bugs with gcc 3.2.1 for the ARM that
> > make it a terrible candidate for processing linux-like code that includes
> > constructs such as:
> >
> >
> > struct jffs2_unknown_node marker = {
> > .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
> > .nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
> > .totlen = cpu_to_je32(c->cleanmarker_size)
> > };
>
> packages/fs/jffs2/current/src/fs-ecos.c:24
>
> #if (__GNUC__ == 3) && (__GNUC_MINOR__ == 2) && defined (__ARM_ARCH_4__)
> #error This compiler is known to be broken. Please see:
> #error http://ecos.sourceware.org/ml/ecos-patches/2003-08/msg00006.html
> #endif
>
> 2003-09-23 Andrew Lunn <andrew.lunn@ascom.ch>
>
> * src/fs-ecos.c: Added test to detect known broken ARM compiler
>
> Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss