egcs/linux networking problem isolated

Alan Modra alan@spri.levels.unisa.edu.au
Tue Apr 13 18:15:00 GMT 1999


On Wed, 14 Apr 1999, Alan Modra wrote:

> On Tue, 13 Apr 1999, Jeffrey A Law wrote:
> 
> > 
> >   In message < Pine.LNX.4.10.9904140016500.23419-100000@mullet.itr.unisa.edu.au >
> > you write:
> >   > Anyway, to cut a long story short, after much recompiling with gcc-2.7.2
> >   > and egcs, I narrowed the problem down to a memcpy in
> 
> Maybe I should have explained here that by "narrowed down", I mean that I
> can compile just ip_output() from linux-2.2.5/net/ipv4/ip_output.c with  
> egcs, and the rest of the kernel with gcc-2.7.2, and reproduce a buggy    
> kernel.  Examining the code produced by egcs makes me suspect the memcpy. 

Um, I've got egg on my face again.  linux-2.2.5/include/asm/spinlock.h has
the following, which makes it quite invalid to mix & match linux object
files compiled with different versions of gcc.  Grrr.

#if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
  typedef struct { } rwlock_t;
  #define RW_LOCK_UNLOCKED (rwlock_t) { }
#else
  typedef struct { int gcc_is_buggy; } rwlock_t;
  #define RW_LOCK_UNLOCKED (rwlock_t) { 0 }
#endif

This means the egcs/linux networking bug is still hiding.



More information about the Gcc-bugs mailing list