problem in nested include -- missing a definition?

Linda A. Walsh gcc@tlinx.org
Fri Oct 31 22:45:00 GMT 2014


Jonathan Wakely wrote:
> On 31/10/14 14:51 -0700, Linda A. Walsh wrote:
>> I'm getting the following error:
>> In file included from /usr/include/features.h:364:0,
>>                from /usr/include/limits.h:25,
>>                from 
>> /usr/lib64/gcc/x86_64-suse-linux/4.8/include-fixed/limits.h:168,
>>                from 
>> /usr/lib64/gcc/x86_64-suse-linux/4.8/include-fixed/syslimits.h:7,
>>                from 
>> /usr/lib64/gcc/x86_64-suse-linux/4.8/include-fixed/limits.h:34,
>>                from /usr/include/c++/4.8/climits:41,
>
> None of these headers come from libstdc++ except <climits> which just
> includes <limits.h> so your problem is with your C library
> installation and nothing to do with libstdc++.
---
    From the rpm database, 2 were from glibc, 2 were from
the gcc installation, and 1 from g++.  As I wasn't using gcc, they seemed
to be grouped more with g++ than glibc -- thus 60% shot based on my
g++ usage.  ;-)  Something seems odd with 'features.h' as it said assert.h
was called from 'features.h', but at line number #364 in features.h
I see an include of  "sys/cdefs.h" -- the file you say I need.

But from the include listing that g++ puts out, that file isn't included
at all.

I.e. @ features.h, I see, included, the file you say it is in, NOT 
cassert.h:

At features.h#364, I see:

(#361)/* This is here only because every header file already includes 
this one.  */
(#362)#ifndef __ASSEMBLER__
(#363)# ifndef _SYS_CDEFS_H
(#364)#  include <sys/cdefs.h>
(#365)# endif
---

The include-chain list shows "cassert.h" being included @ 364, not 
sys/cdefs.h.

That the file you mention that has the right def (sys/cdefs.h) is 
included at the
at the end of the include-list above but before 'cassert.h' seems to 
indicate
the include-chain list is missing the inclusion of sys/cdefs.h, even though
the "limits.h"@364 has it in the source.

Weird.

Thanks... at least I have an idea where to kludge around it.




More information about the Libstdc++ mailing list