Date: Mon, 11 Sep 2006 14:39:32 +0800 From: "Intron is my alias on the Internet" <mag@intron.ac> To: Marcin Cieslak <saper@SYSTEM.PL> Cc: freebsd-emulation@freebsd.org Subject: Re: /lib/ld-linux.so.2: cannot execute binary file: fix propsal Message-ID: <courier.450504A4.00010E53@intron.ac> In-Reply-To: <45045617.9010508@SYSTEM.PL> References: <45041321.6030003@SYSTEM.PL> <20060910181928.342eefaf@Magellan.Leidinger.net> <45045617.9010508@SYSTEM.PL>
next in thread | previous in thread | raw e-mail | index | archive | help
Marcin Cieslak wrote: > Alexander Leidinger wrote: > >>> >>> In general, I guess ELF shared libraries should be Linux branded as >>> well? >> >> No, this will not work. You can't start apps which are linked to shared >> libs anymore after this. The linux linker expects the to be branded >> differently than what you propose here (been there done that months or >> years ago). > > This probably leads to commit/revert wars like http://42.pl/u/lAF :) > > I have branded /compat/linux/lib/ld-2.3.6.so and it seems > to work for me(tm). > > It would be anyway interesting to know more about branding and its quirks. > > -- > << Marcin Cieslak // saper@system.pl >> Please note that ld-2.3.3.so and ld-linux.so.2 point to a unique file: -rwxr-xr-x 1 root wheel 98176 4 1 00:52 ld-2.3.3.so lrwxrwxrwx 1 root wheel 11 4 1 00:53 ld-linux.so.2 -> ld-2.3.3.so ld-linux.so.2 is loaded by FreeBSD kernel when a Linux ABI is executed. At the same time, FreeBSD kernel can recognize various brand numbers: #brandelf -l known ELF types are: FreeBSD(9) Linux(3) Solaris(6) SVR4(0) But this doesn't mean ld-linux.so.2 can recogize various brand numeric indications of shared libraries other than ld-linux.so.2. If you mark libc.so.6 with brand "3", you will get: #/compat/linux/bin/ls /compat/linux/bin/ls: error while loading shared libraries: /lib/libc.so.6: ELF file OS ABI invalid When you re-mark libc.so.6 with brand "0", it will work again: #brandelf -f 0 libc.so.6 #/compat/linux/bin/ls ... ... This problem should be owed to ld-linux.so.2, the Linux dynamical linker, not to FreeBSD kernel. ------------------------------------------------------------------------ From Beijing, China
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?courier.450504A4.00010E53>