[uClibc] anyone using ARM shared libraries?
David Poole
daveml at mbuf.com
Mon May 10 22:19:41 UTC 2004
>> What's the complete binutils version you're using? I think the linker
>> is responsible for putting these sections together.
>
> $ arm-linux-ld --version
> GNU ld version 2.14 20030612
> Copyright 2002 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms
> of
> the GNU General Public License. This program has absolutely no
> warranty.
This gives me a good place to start tracking the changes. According to
the ARM ELF spec, DT_TEXTREL isn't used. Glibc's ld-so (2.3.2) has a
comment "DT_TEXTREL is now in Level 2 and might phase out at some
time." which I think means it's deprecated. Between your version and
mine, someone might have axed it.
>> % arm-linux-ld --version
>> GNU assembler 2.14.90.0.7 20031029
>
> How come your linker thinks it's an assembler?
D'oh! Fat fingered cut'n'paste error. I keep going back and forth on
whether it's the linker or the assembly responsible for TEXTREL but
both return the same version.
> I also apply this from my Makefile
> -perl -i -p -e "s,link_info.combreloc = false,link_info.combreloc =
> true,g;" \
> $(BINUTILS_PATH)/ld/ldmain.c
> (cd ${BINUTILS_PATH}; perl -i -p -e
> "s,#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\"\
> ,#define ELF_DYNAMIC_INTERPRETER
> \"/lib/ld-uClibc.so.0\",;" \
> `grep -lr "#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\""
> ${BINUTILS_PATH}`);
If I'm reading this correctly, it's changing
"link_info.combreloc=false" to "link_info.combreloc=true" in
ld/ldmain.c (not sure the effect but mine is already =true) and
changing the interpreter path to the ld-so.
Thanks. I'm off to ftp and diff a few binutils releases.
--
David Poole <dpoole at mobl.com>
Mobility Electronics, Idaho http://www.mobl.com
960 Broadway Avenue, Suite 300
Boise, ID 83706
More information about the uClibc
mailing list