Skip to content

Commit

Permalink
Clarify what part of the NDK sets the soname.
Browse files Browse the repository at this point in the history
It's the build systems, not the toolchain itself.

Bug: android/ndk#1865
Test: treehugger
Change-Id: I74b35498e32c798683fd39e7369f87ff6cc2de38
  • Loading branch information
enh-google committed Apr 13, 2023
1 parent 66542d6 commit 8aa1deb
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions android-changes-for-ndk-developers.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ feature >= Android M but still works on older releases.)
## Correct soname/path handling (Available in API level >= 23)

The dynamic linker now understands the difference
between a library’s soname and its path (public bug
between a library’s soname and its path (public bug
https://code.google.com/p/android/issues/detail?id=6670). API level 23
is the first release where search by soname is implemented. Earlier
releases would assume that the basename of the library was the soname,
Expand Down Expand Up @@ -326,12 +326,12 @@ libraries as the location may change from device to device.

## Missing SONAME (Enforced for API level >= 23)

Each ELF shared object (“native library”) must have a SONAME (Shared
Object Name) attribute. The NDK toolchain adds this attribute by default,
so its absence indicates either a misconfigured alternative toolchain
or a misconfiguration in your build system. A missing SONAME may lead
to runtime issues such as the wrong library being loaded: the filename
is used instead when this attribute is missing.
Each ELF shared object (“native library”) must have a SONAME
(Shared Object Name) attribute. The NDK build systems add this
attribute by default, so its absence (or an incorrect soname) indicates
a misconfiguration in your build system. A missing SONAME may lead to
runtime issues such as the wrong library being loaded: the filename is
used instead when this attribute is missing.

```
$ readelf --dynamic libWithSoName.so | grep SONAME
Expand All @@ -346,7 +346,7 @@ the library you were expecting.
*Resolution*: the current NDK generates the correct SONAME by
default. Ensure you're using the current NDK and that you haven't
configured your build system to generate incorrect SONAME entries (using
the -soname linker option).
the `-soname` linker option).

## `__register_atfork` (Available in API level >= 23)

Expand Down

0 comments on commit 8aa1deb

Please sign in to comment.