Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20141231194014.GE1809@newbook>
Date: Wed, 31 Dec 2014 11:40:14 -0800
From: Isaac Dunham <ibid.ag@...il.com>
To: musl@...ts.openwall.com
Subject: Re: Failed to execute /init (error -2) for system-wide musl
 libc

On Wed, Dec 31, 2014 at 07:04:55PM +0100, piranna@...il.com wrote:
> On NodeOS we are having some problems creating an i686 cross-compiler
> using musl (https://github.com/NodeOS/NodeOS/pull/89).
> 
> The point is that by generating a fully statically linked Node.js
> executable it boot correctly, but by using a dynamically one we get a
> "Failed to execute /init (error -2)" error. We have crafted the
> cross-compiler following the instructions at
> http://clfs.org/view/clfs-embedded with no lack. The fact is that
> executables compiled with the cross-toolchain works on our desktops
> but they don't on QEmu, and we've added all the dynamic libraries that
> readelf request (only libc.so, libstdc++.so & libgcc_s.so). As a
> curious side note, when installing the musl-linked gcc libraries, the
> /lib/ld-musl-i386.so.1 link dissapear from the cross-toochain folder,
> but also adding it by hand all the dynamic linked executables refuse
> to load on QEmu, also a simple "Hello World" that only depends on
> libc.so :-/
> 
> We are getting out of ideas, any clue about what could be happening?

I'm not clear what your root filesystem for qemu looks like 
(the contents of /lib are the interesting part).
An ls -l of that directory would be useful.

It *should* look like this:
/lib
/lib/ld-musl-i386.so.1 # either file or  -> /lib/libc.so
/lib/libc.so # only if ld-musl-i386.so.1 is symlink
/lib/libstdc++.so.6
/lib/libgcc_s.so.1

Note the version numbers.
All of these should be chmod 0755.
The libraries are ordinarily symlinks to the real ones:
$ ls -l /usr/lib/libstdc++.so*
lrwxrwxrwx    1 root     root            19 Dec 30 15:27 /usr/lib/libstdc++.so -> libstdc++.so.6.0.20
lrwxrwxrwx    1 root     root            19 Dec 30 15:24 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.20
-rwxr-xr-x    1 root     root        845592 Dec 12 01:38 /usr/lib/libstdc++.so.6.0.20


If they are symlinks, check that the symlink target is also present.
 
> Greetings, and Happy New Year :-)
> 
> Jesús Leganés Combarro "piranna"

And Happy New Year to you, also!

Isaac Dunham

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.