Re: cc std=c11 breakage in Fedora 21

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/10/2014 02:37 PM, Chuck Forsberg WA7KGX wrote:
> 
> On 10/10/2014 07:45 AM, Jakub Jelinek wrote:
>> On Fri, Oct 10, 2014 at 07:23:02AM -0700, Chuck Forsberg WA7KGX wrote:
>>> Why does this program fragment fail to compile if a C standard
>>> is specified?  I compiles without complaint with a simple cc -c qq.c
>> You chose a strict conformance mode, in which sys/stat.h doesn't provide
>> those.  You need either -D_XOPEN_SOURCE, -D_GNU_SOURCE, -D_DEFALT_SOURCE
>> etc. feature test macros (see info libc on it), or -std=gnu11 (or
>> -std=gnu99, -std=gnu89 etc.).
>>
>>     Jakub
> Where is S_IFMT et al. defined in strict conformance mode?

No where.  C does not define S_IFMT, so strict conformance means
limiting yourself to the symbols defined by C, therefore attempting to
use something the standard does not call out should be an error, as you
found out.

> Why not in sys/stat.h?

Because in strict conformance mode, sys/stat.h must not pollute the
environment.  You usually DON'T want to compile in strict conformance
mode, if you have any likelihood of using extensions.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
test mailing list
test@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe:
https://admin.fedoraproject.org/mailman/listinfo/test

[Index of Archives]     [Fedora Desktop]     [Fedora SELinux]     [Photo Sharing]     [Yosemite Forum]     [KDE Users]

  Powered by Linux