Dave Anderson wrote:
 Castor's patch fixed a 2.x gcc compiler failure here because
 of the inadvertant double semi-colon:
 @@ -52,7 +52,7 @@
  kernel_init(int when)
  {
         int i;
 -       char *p1, *p2, buf[BUFSIZE];;
 +       char *p1, *p2, buf[BUFSIZE];
         struct syment *sp1, *sp2;
 ...which I wasn't aware of, since I haven't been testing builds with
 that era compiler for a some time now.  But in doing so, I see that
 gcc 2.96 won't compile diskdump.c either:
 cc -c -g -DX86 -D_FILE_OFFSET_BITS=64 diskdump.c
 In file included from diskdump.c:24:
 diskdump.h:49: array size missing in `tasks'
 make[3]: *** [diskdump.o] Error 1
 because of the tasks member at the end of this struct:
 struct disk_dump_header {
         char                    signature[SIG_LEN];     /* = "DISKDUMP" */
         int                     header_version; /* Dump header version */
         struct new_utsname      utsname;        /* copy of system_utsname */
         struct timeval          timestamp;      /* Time stamp */
         unsigned int            status;         /* Above flags */
         int                     block_size;     /* Size of a block in byte */
         int                     sub_hdr_size;   /* Size of arch dependent
                                                    header in blocks */
         unsigned int            bitmap_blocks;  /* Size of Memory bitmap in
                                                    block */
         unsigned int            max_mapnr;      /* = max_mapnr */
         unsigned int            total_ram_blocks;/* Number of blocks should be
                                                    written */
         unsigned int            device_blocks;  /* Number of total blocks in
                                                  * the dump device */
         unsigned int            written_blocks; /* Number of written blocks */
         unsigned int            current_cpu;    /* CPU# which handles dump */
         int                     nr_cpus;        /* Number of CPUs */
         struct task_struct      *tasks[];
 };
 Can this be changed to: struct task_struct **tasks;
 and get away with it? 
or should it be:
        struct task_struct       *tasks[0];
Dave