DTS does not, in general, support open source libraries. However, you’ve managed to gather enough info to suggest a path forward. You wrote:
The Xcode terminal reports this:
… Operation not permitted …
That’s EPERM
, which is a clear indication that you’ve hit an App Sandbox limit. See On File System Permissions for more about that.
Console app reports this:
Sandbox: deny(1) ipc-posix-shm-write-create /__KMP_REGISTERED_LIB_31975
And that suggests that this is related to the use of Posix shared memory. Which makes sense because the App Sandbox has a general goal of preventing IPC between unrelated processes. A sandboxed app can only use IPC to communicate with the system and with other processes from the same team.
In the case of Posix shared memory, the sandbox restricts the name you pass to shm_open
(if you’re not familiar with shm_open
, see shm_open
man page). That restricted is documented here. In short, the name must be of the form GGG/NNN
, where GGG
is an app group name and NNN
is a name you choose.
IMPORTANT The name is limited to PSHMNAMLEN
(31) UTF-8 characters, so choose short values for GGG
and NNN
.
If you’re familiar with app groups from iOS, be aware that they’re different on macOS. See App Groups: macOS vs iOS: Fight!. In my test I used the SKMME9E2Y8.grp
app group and a shared memory name of SKMME9E2Y8.grp/shm
, where SKMME9E2Y8
is my Team ID.
Now all you have to do is convince OpenMP to use that name for its shared memory (-:
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"