gzip-1.3.12-2 build from source fails with errors during make

Corinna Vinschen corinna-cygwin@cygwin.com
Sun Mar 13 15:18:00 GMT 2011


On Mar 13 16:07, David Sastre wrote:
> On Sun, Mar 13, 2011 at 01:47:29PM +0000, ymcp wrote:
> > I'm trying to build the latest gzip-1.3.12-2 from source, following
> > the instructions in "/usr/src/gzip-1.3.12-2/INSTALL", but get some
> > errors during the "make" step.
> > 
> > -------------------------------------------------------------------
> > ///usr/include/sys/stat.h:165: error: conflicting types for `futimens'
> > -------------------------------------------------------------------
> 
> Hello,
> 
> I can confirm that.
> 
> As a workaround, I've tested building gzip-1.4 from source using the 
> a simple cygport file (below), taking advantage of gzip building OOTB.
> It builds OK and all tests are passed successfully.
> (Proper packaging still requires a setup.hint and a README, of course).
> 
> $ cat gzip-1.4-1.cygport
> SRC_URI="http://ftp.gnu.org/gnu/${PN}/${P}.tar.xz"
> HOMEPAGE="http://ftp.gnu.org/gnu/${PN}/"
> 
> Maybe this is a good chance to promote gzip to current upstream
> version?
> 
> Also, could the following change in /usr/include/sys/stat.h be related?
> 
>  Newlib ChangeLog
> 
>  2008-04-24  Corinna Vinschen
> 
>    * libc/include/sys/stat.h (UTIME_NOW): Define for Cygwin.
>    (UTIME_OMIT): Ditto.
>    (utimensat): Declare for Cygwin.
>    (futimens): Ditto.
> 
>  158 #if defined (__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
>  159 int _EXFUN(fchmodat, (int, const char *, mode_t, int));
>  160 int _EXFUN(fstatat, (int, const char *, struct stat *, int));
>  161 int _EXFUN(mkdirat, (int, const char *, mode_t));
>  162 int _EXFUN(mkfifoat, (int, const char *, mode_t));
>  163 int _EXFUN(mknodat, (int, const char *, mode_t, dev_t));
>  164 int _EXFUN(utimensat, (int, const char *, const struct timespec *, int));
>  165 int _EXFUN(futimens, (int, const struct timespec *));
>  166 #endif
> 
> Did it break gzip-1.3 (2007)?

Newlib's declaration of futimens is compatible with the POSIX standard.
The error message seems to point to zlib defining its own version of
futimens with a different prototype as the standard, without checking if
the underlying system already provides this function.  This isn't
Cygwin's fault.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list