[Lldb-commits] [lldb] [lldb] Remove support and workarounds for Android 4 and older (PR #124047)
via lldb-commits
lldb-commits at lists.llvm.org
Thu Jan 23 09:29:27 PST 2025
================
@@ -25,13 +25,10 @@
#include <sstream>
#ifdef __ANDROID__
----------------
enh-google wrote:
looking around, i see a few others that aren't true either:
```
#ifdef __ANDROID__
// Android does not have SUN_LEN
#ifndef SUN_LEN
#define SUN_LEN(ptr) \
(offsetof(struct sockaddr_un, sun_path) + strlen((ptr)->sun_path))
#endif
#endif // #ifdef __ANDROID__
```
or
```
#if defined(_WIN32) || defined(__ANDROID__) || defined(_AIX)
// Defines from ar, missing on Windows
```
for example.
please let us know any time you find yourself needing to add a workaround like this, so we can try to make it "just work".
anything like
```
#ifdef __ANDROID__
#include <arpa/inet.h>
#include <asm-generic/errno-base.h>
#include <cerrno>
#include <fcntl.h>
#include <linux/tcp.h>
#include <sys/syscall.h>
#include <unistd.h>
#endif // __ANDROID__
```
is exceptionally weird. any time you're having to include stuff from `<asm` (and to a lesser extent `<linux/`) is probably a bug on our side.
i don't suppose anyone knows the history of this?
```
static Environment::Envp FixupEnvironment(Environment env) {
#ifdef __ANDROID__
// If there is no PATH variable specified inside the environment then set the
// path to /system/bin. It is required because the default path used by
// execve() is wrong on android.
env.try_emplace("PATH", "/system/bin");
#endif
return env.getEnvp();
}
```
that's especially weird because execve() doesn't _use_ $PATH ... it's the members of the exec family that have a 'p' in the name that do.
https://github.com/llvm/llvm-project/pull/124047
More information about the lldb-commits
mailing list