On Tue, Dec 23, 2014 at 3:30 AM, Andrew Haley <aph@xxxxxxxxxx> wrote: > On 22/12/14 20:55, Cyd Haselton wrote: >> On Mon, Dec 22, 2014 at 1:09 PM, Cyd Haselton <chaselton@xxxxxxxxx> wrote: >>> On Mon, Dec 22, 2014 at 1:05 PM, Andrew Haley <aph@xxxxxxxxxx> wrote: >>>> On 12/22/2014 06:40 PM, Cyd Haselton wrote: >>>>>> What does your /usr/lib/libc.so look like? I'd expect to see >>>>>>> something like this: >>>>>>> >>>>>>> /* GNU ld script >>>>>>> Use the shared library, but some functions are only in >>>>>>> the static library, so try that secondarily. */ >>>>>>> OUTPUT_FORMAT(elf64-x86-64) >>>>>>> GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) >>>>> >>>>> I'm not quite sure what you're asking; I'm using a sysroot with the >>>>> build compiler and the libc.so is not a script but an actual library. >>>>> Were you asking about the build link script or the stage1 link script? >>>> >>>> I'm asking about the file /usr/lib/libc.so. >>>> >>>> If it's a script which looks like the file above you'll get >>>> the function definitions you need when you link against libc, >>>> even though dlopen is defined in ld-blah.so. >>> >>> There's no /usr/lib/libc.so in the environment in which I'm working on >>> my Android device. >>> >>> The script excerpt you included in your original email looks familiar >>> though. Is it possible the script is located elsewhere, with a >>> different name? >> >> Or, if not, is there a workaround? I'm assuming there is as I've >> built versions previous to 4.8.x on-device... > > You said "when bootstrapping 4.8.0 I was able to get around this by > specifying -ldl in LDFLAGS and LIBS when running configure" which > tells me that 4.8.0 was also broken. Either Android needs a linker > script like GNU/Linux or you need to actually get in there and edit > GCC's build scripts to link against libdl. > > Andrew. There might already be a linker script on Android...just not one that I've found. I'll try to locate it and post the results back to this thread. Last additional questions: 1) Why did the 4.8.3 on-device build pick up the necessary -ldl from LIBS, while the 4.9.2 build does not? (I've been working on this problem for a while...including going through the Changelogs for GCC, libgcc, etc...I've not found what changed between 4.8.x and 4.9.x that would cause this) 2) Are the linker script specs visible by gcc -dumpspecs, and editable by modifying linux-android.h and gnu-user.h? (I've modified both to add -ldl, with no results...i.e. same error) Thanks for your help...