On 11/12/2013 08:27 PM, Joel Sherrill wrote:
On 11/12/2013 1:23 PM, Sebastian Huber wrote:
On 11/12/2013 08:13 PM, Joel Sherrill wrote:

_GNU_SOURCE is transformed into multiple other
defines in features.h in glibc.

#ifdef  _GNU_SOURCE
# define __USE_GNU      1
#endif

Our sys/features.h does not have the comparable
ifdef. We are likely missing others as it turns
on about ten other feature flags in the glibc
features.h.

I guess we need to follow this pattern and add
_GNU_SOURCE to our sys/features.h. The others
need another round of thought.
Another option would be to add this to the Newlib <sys/cdefs.h> since
here we already have defines related to _POSIX_SOURCE etc.   Here we
should use __GNU_VISIBLE to be in line with the BSD names.

Where's the best place to add this in <sys/cdefs.h> to not
screw up merging future versions from BSD land.



In case this _GNU_SOURCE is independent of the other defines, e.g. if it is valid to use this

#define _POSIX_C_SOURCE 200809
#define _GNU_SOURCE
#include <pthread.h>

we can use a separate define block.  Maybe like this:

diff --git a/newlib/libc/include/sys/cdefs.h b/newlib/libc/include/sys/cdefs.h
index 3861683..cb87084 100644
--- a/newlib/libc/include/sys/cdefs.h
+++ b/newlib/libc/include/sys/cdefs.h
@@ -701,4 +701,10 @@
 #endif
 #endif

+#ifdef _GNU_SOURCE
+#define __GNU_VISIBLE 1
+#else
+#define __GNU_VISIBLE 0
+#endif
+
 #endif /* !_SYS_CDEFS_H_ */

We have also this "Deal with _ANSI_SOURCE:" comment in <sys/cdefs.h>. Not sure how this works together with _GNU_SOURCE.

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : [email protected]
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to