I am trying to run an executable on Angstrom Linux, but ash tells me

-sh: ./myEx: not found

I've checked with readelf the program interpreter and it is

root@beagleboard:~# readelf -l myEx | grep interpreter
  [Requesting program interpreter: /lib/ld-uClibc.so.0]

This program interpreter is missing. I've tried to symbolic link ld-linux.so.3 to ld-uClibc.so.0 but I think it's not correct and with no good results. I don't know where to install that or if I have to cross compile it from sources.

  • For background on interpreters, see "No such file or directory" lies on Optware installed binaries – Gilles May 21 '12 at 23:37
  • Your program requires the dynamic loader from uClibc, but your system is evidently based on Glibc or a compatible loader. You need to install uClibc. You can compile it from source. There's probably a better way to do that on Ångström, but I don't know how, and Google didn't turn up anything. – Gilles May 21 '12 at 23:39
  • thanks.. probably my system is based on eglibc, now I'll try to build my executable for eglibc or install uclibc.. – gc5 May 22 '12 at 14:57

I figured out which libc my system was using. In my case it was eglibc that, cross compiling with openembedded for Angstrom 2012.05, is the default choice. Cross compiling for eglibc resolves this issue.

I wrote this next part only for reference, because I asked bitbake mailing list and I didn't found anything about this on Google: to cross compile for uclibc set ANGSTROMLIBC = "uclibc" in a conf file (as stated on this faq). uclibc should not be compiled directly but it will be built when you run bitbake recipe on a source, and packaged under /tmp/deploy/ subdirectories, usually in the same directory of your package.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.