summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorNathan Brown <nathan.brown@10gen.com>2019-06-14 17:28:19 -0400
committerNathan Brown <nathan.brown@10gen.com>2019-06-21 17:38:11 -0400
commit957f32bcbd3b3485516acdff5c6e99f5b8f790b2 (patch)
tree5086a59e83054315d55a47cb48b4bfa833e5d980 /SConstruct
parent1eff33bd1a8d48eb607675f87faf1836ba325006 (diff)
downloadmongo-957f32bcbd3b3485516acdff5c6e99f5b8f790b2.tar.gz
SERVER-41690 Add flag to SCons to check for USDT support
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct25
1 files changed, 25 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct
index 1b7523e903d..47dae18a609 100644
--- a/SConstruct
+++ b/SConstruct
@@ -566,6 +566,15 @@ add_option('jlink',
nargs='?',
type=float)
+add_option('enable-usdt-probes',
+ choices=["on", "off", "auto"],
+ default="auto",
+ help='Enables USDT probes. Default is auto, which is enabled only on Linux with SystemTap headers',
+ type='choice',
+ nargs='?',
+ const='on',
+)
+
try:
with open("version.json", "r") as version_fp:
version_data = json.load(version_fp)
@@ -3568,8 +3577,24 @@ def doConfigure(myenv):
else:
myenv.ConfError("Running on ppc64le, but can't find a correct vec_vbpermq output index. Compiler or platform not supported")
+ myenv = conf.Finish()
+
+ conf = Configure(myenv)
+ usdt_enabled = get_option('enable-usdt-probes')
+ usdt_provider = None
+ if usdt_enabled in ('auto', 'on'):
+ if env.TargetOSIs('linux'):
+ if conf.CheckHeader('sys/sdt.h'):
+ usdt_provider = 'SDT'
+ # can put other OS targets here
+ if usdt_enabled == 'on' and not usdt_provider:
+ myenv.ConfError("enable-usdt-probes flag was set to on, but no USDT provider could be found")
+ elif usdt_provider:
+ conf.env.SetConfigHeaderDefine("MONGO_CONFIG_USDT_ENABLED")
+ conf.env.SetConfigHeaderDefine("MONGO_CONFIG_USDT_PROVIDER", usdt_provider)
return conf.Finish()
+
env = doConfigure( env )
# TODO: Later, this should live somewhere more graceful.