diff options
author | Nathan Brown <nathan.brown@10gen.com> | 2019-06-14 17:28:19 -0400 |
---|---|---|
committer | Nathan Brown <nathan.brown@10gen.com> | 2019-06-21 17:38:11 -0400 |
commit | 957f32bcbd3b3485516acdff5c6e99f5b8f790b2 (patch) | |
tree | 5086a59e83054315d55a47cb48b4bfa833e5d980 /SConstruct | |
parent | 1eff33bd1a8d48eb607675f87faf1836ba325006 (diff) | |
download | mongo-957f32bcbd3b3485516acdff5c6e99f5b8f790b2.tar.gz |
SERVER-41690 Add flag to SCons to check for USDT support
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 25 |
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. |