summaryrefslogtreecommitdiffstats
path: root/linker
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-03-18 12:07:00 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-03-18 12:07:00 +0100
commit385816ce486622d72a8e56443b53ff8404d4ae3b (patch)
treeeda6b439a633bda0fed55b9753ca9b035dc7c04d /linker
parentd103a5984a13da8a540dd760e8682b6ac257e263 (diff)
parentf6164e6c266759ab0cd9e7e491326d3c0974dfbd (diff)
downloadbionic-385816ce486622d72a8e56443b53ff8404d4ae3b.zip
bionic-385816ce486622d72a8e56443b53ff8404d4ae3b.tar.gz
bionic-385816ce486622d72a8e56443b53ff8404d4ae3b.tar.bz2
Merge branch 'cm-13.0' of https://github.com/CyanogenMod/android_bionic into replicant-6.0replicant-6.0-alpha-0005replicant-6.0-alpha-0004
Diffstat (limited to 'linker')
-rw-r--r--linker/linker.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp
index c81f5d3..bc40cf1 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -980,16 +980,16 @@ static bool walk_dependencies_tree(soinfo* root_soinfos[], size_t root_soinfos_s
visited.push_back(si);
- si->get_children().for_each([&](soinfo* child) {
- visit_list.push_back(child);
- });
-
if (do_shims) {
shim_libs_for_each(si->get_realpath(), [&](soinfo* child) {
si->add_child(child);
visit_list.push_back(child);
});
}
+
+ si->get_children().for_each([&](soinfo* child) {
+ visit_list.push_back(child);
+ });
}
return true;
@@ -3013,12 +3013,14 @@ bool soinfo::link_image(const soinfo_list_t& global_group, const soinfo_list_t&
if (has_text_relocations) {
// Fail if app is targeting sdk version > 22
// TODO (dimitry): remove != __ANDROID_API__ check once http://b/20020312 is fixed
+#if !defined(__i386__) // ffmpeg says that they require text relocations on x86
if (get_application_target_sdk_version() != __ANDROID_API__
&& get_application_target_sdk_version() > 22) {
PRINT("%s: has text relocations", get_realpath());
DL_ERR("%s: has text relocations", get_realpath());
return false;
}
+#endif
// Make segments writable to allow text relocations to work properly. We will later call
// phdr_table_protect_segments() after all of them are applied and all constructors are run.
DL_WARN("%s has text relocations. This is wasting memory and prevents "