Project

General

Profile

Actions

Support #1188

closed

Static/dynamic library linking behavior change (10.1 -> 10.2+)

Added by Alex A. about 9 years ago. Updated about 9 years ago.

Status:
Completed
Priority:
High
Assignee:
Category:
build/core
Target version:
Start date:
12/17/2015
Due date:
% Done:

100%

Estimated time:
CPU Architecture:
Host OS:
Toolchain:
Android version:
CrystaX NDK Version:

Description

There was some change in linking behavior, which may or may not be an issue.

I'm attaching a simple project that is able to reproduce the change:

  • test app linked to shared library
  • shared library linked with static library
  • the shared library has a method to access static variable defined in the static library
  • the test app accesses method from shared library and also directly accessing static variable from the static library (the app itself is not linked to static library, at least not explicitly).

Behavior in ndk 10.1.0 (I have also verified that it is behavior in google ndk r10e):

  • calls in the test app refer to the same memory

Behavior in ndk 10.2.0 and 10.3.0:

  • calls refer to different memory locations

Files

ndk-test.tar.xz (18 KB) ndk-test.tar.xz Alex A., 12/17/2015 02:52 AM
Actions #1

Updated by Alex A. about 9 years ago

Small addition.

The way I tested:

  • start x86 emulator

  • build

/ndk-build
  • copy
adb push libs/x86 /data/local/test
  • ssh to emulator and run the test
adb shell
LD_LIBRARY_PATH=/data/local/test /data/local/test/test
Actions #2

Updated by Dmitry M. about 9 years ago

  • Assignee set to Dmitry M.
  • Priority changed from Normal to High
  • Target version set to 10.3.1
Actions #3

Updated by Dmitry M. about 9 years ago

  • CrystaX NDK Version set to 10.2.1
Actions #4

Updated by Dmitry M. about 9 years ago

  • Status changed from Open to In Progress
Actions #5

Updated by Dmitry M. about 9 years ago

  • Category set to build/core
  • Status changed from In Progress to Completed
  • % Done changed from 0 to 100

Alex, thank you for reporting this issue! Having your minimal example, I was able to reproduce it.

It was a bug, introduced by "this":https://github.com/crystax/android-platform-ndk/commit/bcd2d89a4c9b4853dc67d5441a591980d94c9c38 commit. I've "fixed":https://github.com/crystax/android-platform-ndk/commit/c5cc5abcf69f537bcbd0d63c535cbfa05b13d03c it and added test case, preventing its appearing in the future.

This fix will be included to the upcoming 10.3.1 release.

Actions

Also available in: Atom PDF