summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStan Cox <scox@redhat.com>2010-03-09 17:40:04 -0500
committerStan Cox <scox@redhat.com>2010-03-09 17:40:04 -0500
commit985adad37f66be2b1796641360296b7632c7f290 (patch)
treea4dfcb9c86c760c9fd2eb84513fbdee5680f5821
parent595187eb19a18c6f534d1e44aeb912c01b8dc41b (diff)
downloadsystemtap-steved-985adad37f66be2b1796641360296b7632c7f290.tar.gz
systemtap-steved-985adad37f66be2b1796641360296b7632c7f290.tar.xz
systemtap-steved-985adad37f66be2b1796641360296b7632c7f290.zip
Include __GNUC_RH_RELEASE__ in the volatile check.
sdt.h (GNUC_VERSION) Include __GNUC_RH_RELEASE__. Check for at least gcc 4.4.4
-rw-r--r--NEWS4
-rw-r--r--includes/sys/sdt.h7
2 files changed, 7 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index bd65b2a3..26ae195b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,7 @@
* What's new
-- User space marker arguments no longer use volatile if richer DWARF debuginfo
- is available.
+- User space marker arguments no longer use volatile if the version of gcc,
+ which must be at least 4.4.4, supports richer DWARF debuginfo.
- A new construct for error handling is available. It is similar to c++
exception catching, using try and catch as new keywords. Within a handler
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h
index 314f9cc1..971b0c8b 100644
--- a/includes/sys/sdt.h
+++ b/includes/sys/sdt.h
@@ -80,8 +80,11 @@
#define STAP_UPROBE_GUARD 0x31425250
-#define GNUC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-#if GNUC_VERSION >= 40403
+#ifndef __GNUC_RH_RELEASE__
+#define __GNUC_RH_RELEASE__ 0
+#endif
+#define GNUC_VERSION (__GNUC__ * 1000000 + __GNUC_MINOR__ * 10000 + __GNUC_PATCHLEVEL__ * 100 + __GNUC_RH_RELEASE__)
+#if GNUC_VERSION >= 4040400 && ! defined VOLATILE
#define VOLATILE_ARG
#else
#define VOLATILE_ARG volatile