libc functions from c++ issues

Chris Johns chrisj at rtems.org
Thu Apr 14 03:52:53 UTC 2022


On 14/4/2022 1:51 pm, Joel Sherrill wrote:
> On Wed, Apr 13, 2022, 9:14 PM Chris Johns <chrisj at rtems.org
> <mailto:chrisj at rtems.org>> wrote:
> 
>     On 14/4/2022 6:58 am, Joel Sherrill wrote:
>     > When you use -std= with gcc, it says to strictly enforce that standard. C++ is
>     > NOT POSIX so pthread.h prototypes aren't visible.  There are some edge cases
>     > where gcc isn't that strict until -pedantic is turned on. Use of long long in
>     > C++03 is an example of that. 
>     >
>     > -D_POSIX_C_SOURCE=200809 is precisely the answer I think but -D_GNU_SOURCE
>     > enables almost everything I think.
>     >
>     > Anyway, here's a small Makefile with some comments to help:
> 
>     Nice and thanks. I reviewed the flags on this page:
> 
>     https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
>     <https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html>
> 
>     And adding `_XOPEN_SOURCE` to the compiler command line allowed the code to
>     build. I will raise the strict vs non-strict issue with the project. I suspect
>     they are not aware there is an issue.
> 
> One thing I've learned from working the FACE Technical Standard is that it is
> common to think you are closely following a standard but the tools and
> environment don't enforce it like you think. 
> 
> When you get the warnings down (assume there are some/lots), turn on -Wall and
> -pedantic and see where else the code isn't strictly following things.

<bleach> I shudder at the thought.

Chris


More information about the devel mailing list