From owner-freebsd-emulation@FreeBSD.ORG Mon Sep 11 06:39:39 2006 Return-Path: X-Original-To: freebsd-emulation@freebsd.org Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 134D116A416 for ; Mon, 11 Sep 2006 06:39:39 +0000 (UTC) (envelope-from admin@intron.ac) Received: from intron.ac (unknown [210.51.165.237]) by mx1.FreeBSD.org (Postfix) with ESMTP id 364F443D46 for ; Mon, 11 Sep 2006 06:39:37 +0000 (GMT) (envelope-from admin@intron.ac) Received: from localhost (localhost [127.0.0.1]) (uid 1003) by intron.ac with local; Mon, 11 Sep 2006 14:39:32 +0800 id 0010E401.450504A4.00010E53 References: <45041321.6030003@SYSTEM.PL> <20060910181928.342eefaf@Magellan.Leidinger.net> <45045617.9010508@SYSTEM.PL> In-Reply-To: <45045617.9010508@SYSTEM.PL> From: "Intron is my alias on the Internet" To: Marcin Cieslak Date: Mon, 11 Sep 2006 14:39:32 +0800 Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312"; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Cc: freebsd-emulation@freebsd.org Subject: Re: /lib/ld-linux.so.2: cannot execute binary file: fix propsal X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Sep 2006 06:39:39 -0000 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