mesonbuild / mesonbuild/wrapdb

Regression in OpenSSL 3.0.2 vs. 1.1.1 on Android/NDK builds

Open
#427 12 comments 0 reactions 0 assignees View on GitHub
Dominant language
Meson
Stars
118
Forks
298
Avg merge
2d 2h
Merged PRs (30d)
24

Description

On *very few* platforms, namely `linux-armv4` and `linux-ppc`, the `generated-config` directory contains a reference to an `atomic` library in the 3.0.2 version, but not in the 1.1.1 version.

```bash
$ grep atomic $(find subprojects/openssl-3.0.2/generated-config/ -type f -name meson.build)
subprojects/openssl-3.0.2/generated-config/archs/linux-armv4/asm/meson.build: 'atomic',
subprojects/openssl-3.0.2/generated-config/archs/linux-armv4/no-asm/meson.build: 'atomic',
subprojects/openssl-3.0.2/generated-config/archs/linux-ppc/asm/meson.build: 'atomic',
subprojects/openssl-3.0.2/generated-config/archs/linux-ppc/no-asm/meson.build: 'atomic',
```

The main `meson.build` decides that the Android NDK is Linux, which for most intents and purposes is entirely reasonable. However, the Linux NDK does not provide an `atomic` library; therefore, the NDK build breaks for these platforms.

As a suggestion, split `openssl_libraries` into required and optional libraries, so that this distinction can be made at compile time.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing the OpenSSL 3.0.2 and 1.1.1 generated-config files under subprojects/openssl-3.0.2/generated-config/, especially the linux-armv4 and linux-ppc meson.build files containing atomic. Then read the main meson.build logic that classifies Android NDK builds as Linux and run an affected NDK build. Done means those platforms no longer require the unavailable atomic library while other required libraries remain handled correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, linux
Domain
build-system, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.