================
@@ -1210,6 +1210,39 @@ static Status LaunchProcessPosixSpawn(const char 
*exe_path,
     }
   }
 
+  if (launch_info.GetFlags().Test(eLaunchFlagMemoryTagging)) {
+    // The following function configures the spawn attributes to launch the
+    // process with memory tagging explicitly enabled.  We look it up
+    // dynamically since it is only available on newer OS.  Does nothing on
+    // hardware which does not support MTE.
+    //
+    //   int posix_spawnattr_set_use_sec_transition_shims_np(
+    //       posix_spawnattr_t *attr, uint32_t flags);
+    //
----------------
yln wrote:

The call of this API (through the function pointer) is the line that does the 
work.
```
posix_spawnattr_set_use_sec_transition_shims_np_fn(&attr, 0)
```
It means "launch with memory tagging enabled".

* The naming of this function is unfortunate
* We call through function pointer that is looked up via `dlsym()` because the 
function is not available on older OS
* The `flags=0` value allows for future, more specific semantics.
* Everything else is just error handling

https://github.com/llvm/llvm-project/pull/162944
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to