[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/19030] New: ld generates .so/x86 with bad phdr so the Android li
From: |
address@hidden |
Subject: |
[Bug ld/19030] New: ld generates .so/x86 with bad phdr so the Android linker won't dlopen |
Date: |
Wed, 30 Sep 2015 06:40:12 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=19030
Bug ID: 19030
Summary: ld generates .so/x86 with bad phdr so the Android
linker won't dlopen
Product: binutils
Version: 2.25
URL: https://code.google.com/p/android/issues/detail?id=187
850
Status: NEW
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: address@hidden
Target Milestone: ---
Host: x86
Target: x86
Created attachment 8651
--> https://sourceware.org/bugzilla/attachment.cgi?id=8651&action=edit
.so with supposedly broken structure
I originally reported the Bug to Android since a generated .so file could not
by loaded by their linker/loader but they claim ld is a fault for generating a
flawed ELF structure.
To quote:
"The so file in question is a strange one. Android linker assumes that phdr
table is part of loadable segment but looking at the bad.so the load segment
has the offset > sizeof(ehdr) + sizeof(phdr), so it ends up not being mapped
into the memory - hence inaccessible after the library is loaded.
I think the ld is broken (or very old). What does ld --version say?
There are some other irregularities like one load segment for data and
executable with RWE permission. And p_vaddr which might assume fixed
load-address despite the fact that the object type is set to ET_DYN."
For my minimal test case I linked an object file (generated from a C file with
an empty function) like this:
$ ld -L /usr/lib/android-ndk/x86/usr/lib -o client-ndk-x86.so -shared -nostdlib
-lc obj-client-ndk-x86/test.o
As mentioned in the original bug report, ld.gold generates an ELF structure
which works for the Android loader.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/19030] New: ld generates .so/x86 with bad phdr so the Android linker won't dlopen,
address@hidden <=
- [Bug ld/19030] ld generates .so/x86 with bad phdr so the Android linker won't dlopen, address@hidden, 2015/10/08
- [Bug ld/19030] ld generates .so/x86 with bad phdr so the Android linker won't dlopen, address@hidden, 2015/10/08
- [Bug ld/19030] ld generates .so/x86 with bad phdr so the Android linker won't dlopen, address@hidden, 2015/10/08
- [Bug ld/19030] ld generates .so/x86 with bad phdr so the Android linker won't dlopen, amodra at gmail dot com, 2015/10/08
- [Bug ld/19030] ld generates .so/x86 with bad phdr so the Android linker won't dlopen, ian at airs dot com, 2015/10/08