Re-ordering the headers in the below patch fixes aarch64 compilation, due to gzip.h defining # define head (prev+WSIZE) and using struct fpsimd_context { struct _aarch64_ctx head; /* ... */ } diff -u -r ../gzip-1.6/zip.c ./zip.c --- ../gzip-1.6/zip.c 2013-02-01 23:39:13.000000000 -0500 +++ ./zip.c 2016-01-03 19:37:00.603075562 -0500 @@ -20,12 +20,12 @@ #include #include -#include "tailor.h" -#include "gzip.h" - #include #include +#include "tailor.h" +#include "gzip.h" + local ulg crc; /* crc on uncompressed file data */ off_t header_bytes; /* number of bytes in gzip header */