Le 27/11/2019 à 18:23, Christopher Gregory via blfs-support a écrit :
> 
> 
>> Sent: Thursday, November 28, 2019 at 5:52 AM
>> From: "Christopher Gregory via blfs-support" 
>> <[email protected]>
>> To: [email protected]
>> Cc: "Christopher Gregory" <[email protected]>
>> Subject: Re: [blfs-support] Question about cstdlib in gcc
>>
>>
>>
>>> Sent: Thursday, November 28, 2019 at 4:06 AM
>>> From: "Pierre Labastie via blfs-support" 
>>> <[email protected]>
>>> To: [email protected]
>>> Cc: "Pierre Labastie" <[email protected]>
>>> Subject: Re: [blfs-support] Question about cstdlib in gcc
>>>
>>> Le 27/11/2019 à 14:39, Christopher Gregory via blfs-support a écrit :
>>>> Hello,
>>>>
>>>> Whilst attempting to build kmahjonn, I had to compile lex_common, and I 
>>>> got a build failure:
>>>>
>>>> /usr/include/c++/9.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file 
>>>> or directory 75 | #include_next <stdlib.h>
>>>>
>>>> I edited the cstlib file and removed the _next and also in one other file 
>>>> that mentioned it.  My question is this, will this have disasterous 
>>>> results in any future compiles?
>>>
>>> I tend to think (maybe I am wrong) that gcc folks know what they are doing
>>> better than I am... Of course, once in a while, they may introduce bugs,
>>> specially in the first release of a new major version. But this one is the
>>> third version 9.x.y release, and I expect it to be pretty well ironed out.
>>>
>>> So I wouldn't like to have to change anything in include files...
>>>
>>> Now, whether this would have disastrous results, I cannot tell.
>>>
>>> Usually, what is causing trouble with include_next is when some -isystem is
>>> added, because it changes the order that gcc uses for looking for include
>>> directories.
>>>
>>> For me, the search order is:
>>> -----
>>>  /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0
>>>  
>>> /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/x86_64-pc-linux-gnu
>>>  
>>> /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/backward
>>>  /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include
>>>  /usr/local/include
>>>  /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include-fixed
>>>  /usr/include
>>> -----
>>> Note that all the paths with ../../../.. starts actually as /usr/include.
>>>
>>> "find /usr/include -name cstdlib" returns:
>>> /usr/include/c++/9.2.0/tr1/cstdlib
>>> /usr/include/c++/9.2.0/cstdlib
>>> /usr/include/boost/compatibility/cpp_c_headers/cstdlib
>>>
>>> so an #include <cstdlib> would use the one in /usr/include/c++/9.2.0/
>>> So an include_next from this file can use:
>>>  /usr/include/c++/9.2.0/x86_64-pc-linux-gnu
>>>  /usr/include/c++/9.2.0/backward
>>>  /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include
>>>  /usr/local/include
>>>  /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include-fixed
>>>  /usr/include
>>>
>>> and now "find /usr/include -name stdlib.h" returns:
>>> /usr/include/bits/stdlib.h
>>> /usr/include/c++/9.2.0/tr1/stdlib.h
>>> /usr/include/c++/9.2.0/stdlib.h
>>> /usr/include/stdlib.h
>>>
>>> The first and second dirs are not in the search path. The third one is ruled
>>> out by include_next, but the last one should be found by include_next...
>>>
>>> All of this can be changed by any "-isystem" option
>>>
>>>>
>>>> With removing that it allowed lex_common to compile and install.  The 
>>>> result is that kmahjonn successfully built and installed, and is correctly 
>>>> working.
>>>
>>> I've found only this for "lex_common":
>>> https://github.com/aws-robotics/lex-common/tree/master/lex_common
>>>
>>> Is it what you are trying to install? It seems to require a lot of headers
>>> from AWS... Did you mange to install those?
>>>
>>> Also Google cannot find any kmahjonn program. Did you mean kmahjongg?
>>>
>>> Pierre
>>>
>>> Pierre
>>> -- 
>>> http://lists.linuxfromscratch.org/listinfo/blfs-support
>>> FAQ: http://www.linuxfromscratch.org/blfs/faq.html
>>> Unsubscribe: See the above information page
>>>
>>
>> Hello Pierre,
>>
>> Yes I meant kmahjongg.  I always get the spelling of it incorrect.
>>
>> With regards to AWS, yes I got that fully installed without any issues.
>>
>> It was openal-soft example programs that required the installation of 
>> lex_common.  It turned out that even with lex_common installed, it still 
>> complained that it could not find it.  I disabled building of the examples 
>> and then it installed.  Openal-soft is a requirement for kmahjongg.
>>
>> I have already filed a bug-report for lex_common.  I am going to re-add the 
>> _next to those two files.  I only really did it to see if I could further 
>> disect the issue.  I hate changing anything with regards to a compiler as I 
>> sure as hang do not know what I am doing there.  The url you found is the 
>> correct one, along with my lonely open bug report.  
>>
>> Regards,
>>
>> Christopher.
>> -- 
>> http://lists.linuxfromscratch.org/listinfo/blfs-support
>> FAQ: http://www.linuxfromscratch.org/blfs/faq.html
>> Unsubscribe: See the above information page
>>
> 
> Hello Pierre,
> 
> Neither the backward or the include-fixed directories show up for me using 
> the find commands that you provided, yet they are on the system.
> 
> I have changed the files back to what they were just to be safe.
> 

just to be complete: the command to get the include order is:
echo 'int main () { }' | gcc --verbose -xc++ -

Pierre
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to