boostorg / boostorg/process

boost::process:child/args not behaving the same on Ubuntu 20.04LTS as Android (embedded Linux)

Open
#241 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
145
Forks
151
PR merge metrics
No merged PRs in 30d

Description

Boost version: 1.76
NDK: android-ndk-r23
ANDROID_ABI=arm64-v8a
ANDROID_PLATFORM=android-24

I'm seeing different behaviour on Ubuntu than Android using the same version of boost. Here are some examples:

```cpp
namespace bp = boost::process;

bp::child c("ls"); // OK on Ubuntu, OK on Android
bp::child c(bp::search_path("ls")); // OK on Ubuntu, fails on Android
bp::child c(bp::search_path("ls"), bp::args("-l")); // OK on Ubuntu, fails on Android
```

All calls were followed by `c.wait();`

Error message is the same:
`
terminating with uncaught exception of type boost::process::process_error: execve failed: No such file or directory. Aborted
`

My PATH (Android)

`
msm8996:/data/local/tmp # echo $PATH
/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
`

Has anyone else experienced this? I'm unable to pass args (second parameter) on Android. Also, boost:process::search_path doesn't seem to work at all on Android.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.