|
From: | Eric Blake |
Subject: | Re: [PATCH] renameat: port to Solaris 10, which declares renameat in unistd.h |
Date: | Wed, 27 Oct 2010 08:16:05 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100921 Fedora/3.1.4-1.fc13 Mnenhy/0.8.3 Thunderbird/3.1.4 |
On 10/26/2010 07:16 PM, Bruno Haible wrote:
Good point. Yes, too many #includes like this can lead to parse errors in particular situations (even when all gnulib self-tests compile), and it's a pain to analyze this kind of failure. I'm applying this: 2010-10-26 Bruno Haible<address@hidden> unistd: Refine workaround from 2009-12-23 against Cygwin bug. * lib/unistd.in.h: Don't include<stdio.h> and<fcntl.h>, except on Cygwin and mingw.
The ChangeLog entry is inaccurate; mingw does not provide *at() functions and therefore was not affected by the problem.
/* Cygwin 1.7.1 declares symlinkat in<stdio.h>, not in<unistd.h>. */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR&& defined SEEK_END&& defined SEEK_SET) \ - || (@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK)) \ + || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ +&& defined __CYGWIN__)) \
Not to mention that this check does not include mingw. -- Eric Blake address@hidden +1-801-349-2682 Libvirt virtualization library http://libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |