Apparently libtar was poorly programed. An emerge message says so, and a barry dev claims a compile error is the fault of this libtar. Whatever, the patch is easy enough =) --- tarfile-ops-nt.cc.orig 2008-05-05 19:43:36.000000000 -0400 +++ tarfile-ops-nt.cc 2008-05-05 19:50:57.000000000 -0400 @@ -73,7 +73,7 @@ return index; } - int close_compressed(int fd) + int close_compressed(long int fd) { unsigned int ufd = fd; assert( ufd < gzArraySize ); @@ -82,14 +82,14 @@ return ret; } - ssize_t read_compressed(int fd, void *buf, size_t size) + ssize_t read_compressed(long int fd, void *buf, size_t size) { unsigned int ufd = fd; assert( ufd < gzArraySize ); return gzread(gzHandles[ufd], buf, size); } - ssize_t write_compressed(int fd, const void *buf, size_t size) + ssize_t write_compressed(long int fd, const void *buf, size_t size) { unsigned int ufd = fd; assert( ufd < gzArraySize );