Andreas Jochens <[EMAIL PROTECTED]> writes:

> Package: defrag
> Version: 0.73pjm1-8
> Severity: serious
> Tags: patch
>
> When building 'defrag' on amd64/unstable,
> I get the following error:
>
> ranlib libext2.a
> gcc -pipe -Werror -Wall -W -Wunused -Wshadow -Wpointer-arith 
> -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings 
> -Wno-sign-compare -Wstrict-prototypes -Wmissing-prototypes 
> -Wmissing-declarations -Wmissing-noreturn -Wnested-externs -g -O2 
> -fomit-frame-pointer -Wno-trigraphs  -o e2defrag libext2.a -lncurses 
> gcc -pipe -Werror -Wall -W -Wunused -Wshadow -Wpointer-arith 
> -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings 
> -Wno-sign-compare -Wstrict-prototypes -Wmissing-prototypes 
> -Wmissing-declarations -Wmissing-noreturn -Wnested-externs -g -O2 
> -fomit-frame-pointer -Wno-trigraphs   -DHAVE_CONFIG_H -I. -I. -DFS_IS_ext2 -c 
> -o e2dump.ext2.o e2dump.c
> cc1: warnings being treated as errors
> e2dump.c: In function 'dump_super':
> e2dump.c:474: warning: dereferencing type-punned pointer will break 
> strict-aliasing rules
> e2dump.c:476: warning: dereferencing type-punned pointer will break 
> strict-aliasing rules
> e2dump.c: In function 'dump_inode':
> e2dump.c:506: warning: dereferencing type-punned pointer will break 
> strict-aliasing rules
> e2dump.c:507: warning: dereferencing type-punned pointer will break 
> strict-aliasing rules
> e2dump.c:508: warning: dereferencing type-punned pointer will break 
> strict-aliasing rules
> e2dump.c:516: warning: dereferencing type-punned pointer will break 
> strict-aliasing rules
> make[1]: *** [e2dump.ext2.o] Error 1
> rm defrag.minix.o misc.minix.o buffers.minix.o defrag.ext2.o misc.ext2.o 
> buffers.ext2.o display.minix.o minix.minix.o ext2.ext2.o llseek.ext2.o 
> llseek.minix.o display.ext2.o
> make[1]: Leaving directory `/defrag-0.73pjm1'
> make: *** [build-stamp] Error 2
>
> With the attached patch 'defrag' can be compiled on amd64 using gcc-4.1.
>
> Regards
> Andreas Jochens
>
> diff -urN ../tmp-orig/defrag-0.73pjm1/e2dump.c ./e2dump.c
> --- ../tmp-orig/defrag-0.73pjm1/e2dump.c      2001-07-04 11:08:13.000000000 
> +0000
> +++ ./e2dump.c        2006-06-14 10:40:41.000000000 +0000
> @@ -469,10 +469,10 @@
>        (unsigned long) s.s_frags_per_group);   /* # Fragments per group */
>    printf("Inodes per group:%lu\n",
>        (unsigned long) s.s_inodes_per_group);  /* # Inodes per group */
> -  printf("mount time:%s", 
> -      ctime ((time_t *) &s.s_mtime));    /* Mount time */
> -  printf("write time:%s", 
> -      ctime ((time_t *) &s.s_wtime));    /* Write time */
> +  time_t t = s.s_mtime; 
> +  printf("mount time:%s", ctime ( &t));    /* Mount time */
> +  t = s.s_wtime;
> +  printf("write time:%s", ctime ( &t));    /* Write time */
>    printf("magic:0x%X", s.s_magic);                  /* Magic signature */
>    if (s.s_magic == EXT2_SUPER_MAGIC) printf(" (OK)\n");
>    else printf(" (???) ");
> @@ -502,9 +502,10 @@
>     printf("Owner Uid %d ",(uint) n.i_uid);
>     printf("Group Id %d\n",(uint) n.i_gid);
>     printf("File size %lu\n", (unsigned long) n.i_size);
> -   printf("Access time      : %s", ctime ((time_t *) &n.i_atime));
> -   printf("Creation time    : %s", ctime ((time_t *) &n.i_ctime));
> -   printf("Modification time: %s", ctime ((time_t *) &n.i_mtime));
> +   time_t t;
> +   t = n.i_atime; printf("Access time      : %s", ctime (&t));
> +   t = n.i_ctime; printf("Creation time    : %s", ctime (&t));
> +   t = n.i_mtime; printf("Modification time: %s", ctime (&t));
>     if (inode_is_busy(inode_no)) {
>        if (n.i_dtime!=0) printf("ERROR: bitmap is 1  ");
>     }
> @@ -512,7 +513,7 @@
>        if (n.i_dtime==0 && n.i_ctime!=0) printf("ERROR: bitmap is 0\n ");
>        
>     if (n.i_dtime!=0)
> -      printf("Deletion time    : %s", ctime ((time_t *) &n.i_dtime));
> +      t = n.i_dtime; printf("Deletion time    : %s", ctime (&t));
>     printf("Links count: %d\n", (uint) n.i_links_count);
>                               /* in 512 byte blocks for some unknown reason */
>     printf("512-Blocks count: %lu\n", (unsigned long) n.i_blocks); 

Didn't I already fix that? I remember doing the exact same fix. Maybe
at a different place in the code.

MfG
        Goswin


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to