[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