Skip to content

Duplicate OpenMP runtime linked in latest macOS arm64 build causes app to not launch #18655

@Markos-Th09

Description

@Markos-Th09

Quick summary

RPCS3 links multiple OpenMP runtimes, triggering OMP Error #15 and requiring KMP_DUPLICATE_LIB_OK=TRUE to launch, which could cause issues

Details

The current macOS build of RPCS3 appears to link multiple instances of the OpenMP runtime (libomp.dylib). This results in the following error on launch:

OMP: Error #15: Initializing libomp.dylib, but found libomp.dylib already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results.
zsh: abort      /Applications/RPCS3.app/Contents/MacOS/rpcs3

As a workaround, setting the environment variable as instructed allows the emulator to launch. However, this is not a proper fix and may lead to instability or undefined behavior, as noted in the OpenMP warning.

Steps to reproduce:

  1. Launch RPCS3 on macOS
  2. Observe immediate abort with OpenMP error

Expected behavior:
RPCS3 should launch without requiring environment variable workarounds and should only link a single OpenMP runtime.

Attach a log file

OMP: Error #15: Initializing libomp.dylib, but found libomp.dylib already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://openmp.llvm.org/
zsh: abort      /Applications/RPCS3.app/Contents/MacOS/rpcs3

Attach capture files for visual issues

No response

System configuration

CPU: Apple M4
OS: macOS Tahoe 26.3.1

Other details

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Build and CIAnything related to the build process and continuous integrationOS: macOS

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions