Feature Conditional for M_PI
Joel Sherrill <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <CAF9ehCV3Mqp8Mns1QBeaQ-KbPdtQ4G_wpLK0sm9J46gZSU=-Mg@mail.gmail.com> |
Hi
I was porting some code from Linux to Cygwin and came across this. M_PI in
math.h is defined by POSIX as part of XSI. It does not appear to be part of
C99 or C++03. I have this cut down to show the problem:
==========================
#include <math.h>
double pi = M_PI;
==========================
And this script to try various feature defines and compilers:
===========================
GCC=${GCC:-g++}
${GCC} -c m.c
${GCC} -D_XOPEN_SOURCE=700 -c m.c
${GCC} -D_POSIX_C_SOURCE=200809L -c m.c
${GCC} -D_XOPEN_SOURCE=700 -c -D_POSIX_C_SOURCE=200809L -c m.c
===========================
All of those compiler invocations work on Linux but the third one does not
work on Cygwin or RTEMS which use newlib.
Is the proper thing to do to add -D_XOPEN_SOURCE=700 when compiling this
program?
Just curious if Linux is defining _XOPEN_SOURCE by default and newlib
doesn't. Not sure what's the right answer. So asking.
Thanks
--joel