mesonbuild / mesonbuild/wrapdb
Regression in OpenSSL 3.0.2 vs. 1.1.1 on Android/NDK builds
- 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