summaryrefslogtreecommitdiffstats
path: root/sys/i386/linux/linux_sysvec.c
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>1998-09-17 22:08:34 +0000
committermsmith <msmith@FreeBSD.org>1998-09-17 22:08:34 +0000
commit23bdbca2d46a44c119d0a48bd31b6fb92d960b90 (patch)
treeb06eac0a0b460a5d4b0d82b4b41abeae1ed16b6a /sys/i386/linux/linux_sysvec.c
parent5fb94b7685fb6a56410ef7463830cd2858edd432 (diff)
downloadFreeBSD-src-23bdbca2d46a44c119d0a48bd31b6fb92d960b90.zip
FreeBSD-src-23bdbca2d46a44c119d0a48bd31b6fb92d960b90.tar.gz
Add support for glibc consumers using the new ld-linux.so.2 linker.
I can't say this was the most inspired fix, but it matches the design OK.
Diffstat (limited to 'sys/i386/linux/linux_sysvec.c')
-rw-r--r--sys/i386/linux/linux_sysvec.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/i386/linux/linux_sysvec.c b/sys/i386/linux/linux_sysvec.c
index 4b1380c..1474094 100644
--- a/sys/i386/linux/linux_sysvec.c
+++ b/sys/i386/linux/linux_sysvec.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: linux_sysvec.c,v 1.32 1998/08/16 01:21:50 bde Exp $
+ * $Id: linux_sysvec.c,v 1.33 1998/09/14 05:36:48 jdp Exp $
*/
/* XXX we use functions that might not exist. */
@@ -434,6 +434,13 @@ Elf32_Brandinfo linux_brand = {
&elf_linux_sysvec
};
+Elf32_Brandinfo linux_glibc2brand = {
+ "Linux",
+ "/compat/linux",
+ "/lib/ld-linux.so.2",
+ &elf_linux_sysvec
+ };
+
#ifndef LKM
/*
* XXX: this is WRONG, it needs to be SI_SUB_EXEC, but this is just at the
@@ -445,7 +452,8 @@ static void
linux_elf_init(dummy)
void *dummy;
{
- if (elf_insert_brand_entry(&linux_brand) < 0)
+ if ((elf_insert_brand_entry(&linux_brand) < 0) ||
+ (elf_insert_brand_entry(&linux_glibc2brand) < 0))
printf("cannot insert Linux elf brand handler\n");
else if (bootverbose)
printf("Linux-ELF exec handler installed\n");
OpenPOWER on IntegriCloud