Skip to content

fix(ios): force mbedtls subtree static to avoid broken dylib rpaths#138

Merged
1technophile merged 1 commit into
developmentfrom
fix/ios-mbedtls-static-link
Jun 6, 2026
Merged

fix(ios): force mbedtls subtree static to avoid broken dylib rpaths#138
1technophile merged 1 commit into
developmentfrom
fix/ios-mbedtls-static-link

Conversation

@1technophile

Copy link
Copy Markdown
Member

Description:

On iOS the Qt toolchain leaves BUILD_SHARED_LIBS=ON, so mbedtls's 3rdparty deps (everest, p256m) build as dylibs whose install_name is @rpath/... but the main Theengs binary's LC_RPATH only points at absolute build-machine paths under build-ios-dev/. The .app installs fine but dyld then fails at launch with "Library not loaded: @rpath/libeverest.dylib".

Scope BUILD_SHARED_LIBS=OFF to the mbedtls add_subdirectory call so the sub-libraries are statically linked into the executable, mirroring the existing QTKEYCHAIN_STATIC pattern a few lines below.

Checklist:

  • The pull request is done against the latest development branch
  • Only one feature/fix was added per PR and the code change compiles without warnings
  • I accept the DCO.

On iOS the Qt toolchain leaves BUILD_SHARED_LIBS=ON, so mbedtls's 3rdparty
deps (everest, p256m) build as dylibs whose install_name is @rpath/... but
the main Theengs binary's LC_RPATH only points at absolute build-machine
paths under build-ios-dev/. The .app installs fine but dyld then fails at
launch with "Library not loaded: @rpath/libeverest.dylib".

Scope BUILD_SHARED_LIBS=OFF to the mbedtls add_subdirectory call so the
sub-libraries are statically linked into the executable, mirroring the
existing QTKEYCHAIN_STATIC pattern a few lines below.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@1technophile 1technophile merged commit 90453ed into development Jun 6, 2026
10 checks passed
@1technophile 1technophile deleted the fix/ios-mbedtls-static-link branch June 6, 2026 15:19
1technophile added a commit that referenced this pull request Jun 6, 2026
Bump the 1.5.0 release date to 2026-06-06 and fold in the user-facing
changes that landed between #130 and the cut: TheengsDecoder v2.3.0
(#137), MQTT sentinels + sampling caption (#131), credential secure
storage (#132), background-update scheduling and consolidated
permissions UI (#133, #135), the About-screen decoder version and
build number (#139), the iOS mbedTLS static-link fix (#138), and the
device_bm26 ENABLE_MBEDTLS guard (#134).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1technophile added a commit that referenced this pull request Jun 6, 2026
Bump the 1.5.0 release date to 2026-06-06 and fold in the user-facing
changes that landed between #130 and the cut: TheengsDecoder v2.3.0
(#137), MQTT sentinels + sampling caption (#131), credential secure
storage (#132), background-update scheduling and consolidated
permissions UI (#133, #135), the About-screen decoder version and
build number (#139), the iOS mbedTLS static-link fix (#138), and the
device_bm26 ENABLE_MBEDTLS guard (#134).

Co-authored-by: Florian <1technophile@users.noreply.github.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant