if you see an error like this one when compiling zzip:
gcc -DHAVE_CONFIG_H -I.. -I../.. Â Â Â -O2 -D_USE_MMAP Â -fomit-frame-pointer -Wall -Wstrict-prototypes -Wpointer-arith -Wsign-compare -Wmissing-declarations -c `test -f ../../bins/zziptest.c || echo '../../bins/'`../../bins/zziptest.c
../../bins/zziptest.c: In function 'main':
../../bins/zziptest.c:76: error: invalid lvalue in assignment
make[3]: *** [zziptest.o] Error 1
cd /usr/local/directadmin/customapache/zziplib-0.10.82
wget -O bins/zziptest.c http://zziplib.sourceforge.net/zziptest.c
make
make install
Note, the main changes are to insert:
#if __GNUC__+0 >= 3 && __GNUC_MINOR__+0 >= 3
# ifdef DEBUG
# warning suppress a warning where the compiler should have optimized instead.
# endif
#define I_(_T,_L,_R) do { _T _l = (_T) _L; \
_l _R; _L = (typeof(_L)) _l; } while(0)
#else
#define I_(_T,_L,_R) _L _R
#endif
Then change the line:
(char *)hdr += hdr->d_reclen;
to read:I_(char *, hdr, += hdr->d_reclen);
the issue appears to be a casting issue, where the compiler wasn't letting the programmer do exactly what he wanted to. Â This issue has been known to occur on Fedora 8 boxes and some 64-bit OS machines.