Author: dchagin
Date: Mon Jul  3 10:24:49 2017
New Revision: 320595
URL: https://svnweb.freebsd.org/changeset/base/320595

Log:
  Add support for musl consumers to the Linuxulator.
  
  PR:           213809
  Submitted by: Yonas Yanfa
  Reported by:  Yonas Yanfa
  MFC after:    1 week
  Relnotes:     yes

Modified:
  head/sys/amd64/linux/linux_sysvec.c
  head/sys/amd64/linux32/linux32_sysvec.c
  head/sys/i386/linux/linux_sysvec.c

Modified: head/sys/amd64/linux/linux_sysvec.c
==============================================================================
--- head/sys/amd64/linux/linux_sysvec.c Mon Jul  3 10:10:04 2017        
(r320594)
+++ head/sys/amd64/linux/linux_sysvec.c Mon Jul  3 10:24:49 2017        
(r320595)
@@ -923,9 +923,22 @@ static Elf64_Brandinfo linux_glibc2brandshort = {
        .flags          = BI_CAN_EXEC_DYN | BI_BRAND_NOTE
 };
 
+static Elf64_Brandinfo linux_muslbrand = {
+       .brand          = ELFOSABI_LINUX,
+       .machine        = EM_X86_64,
+       .compat_3_brand = "Linux",
+       .emul_path      = "/compat/linux",
+       .interp_path    = "/lib/ld-musl-x86_64.so.1",
+       .sysvec         = &elf_linux_sysvec,
+       .interp_newpath = NULL,
+       .brand_note     = &linux64_brandnote,
+       .flags          = BI_CAN_EXEC_DYN | BI_BRAND_NOTE
+};
+
 Elf64_Brandinfo *linux_brandlist[] = {
        &linux_glibc2brand,
        &linux_glibc2brandshort,
+       &linux_muslbrand,
        NULL
 };
 

Modified: head/sys/amd64/linux32/linux32_sysvec.c
==============================================================================
--- head/sys/amd64/linux32/linux32_sysvec.c     Mon Jul  3 10:10:04 2017        
(r320594)
+++ head/sys/amd64/linux32/linux32_sysvec.c     Mon Jul  3 10:24:49 2017        
(r320595)
@@ -1141,9 +1141,22 @@ static Elf32_Brandinfo linux_glibc2brand = {
        .flags          = BI_CAN_EXEC_DYN | BI_BRAND_NOTE
 };
 
+static Elf32_Brandinfo linux_muslbrand = {
+       .brand          = ELFOSABI_LINUX,
+       .machine        = EM_386,
+       .compat_3_brand = "Linux",
+       .emul_path      = "/compat/linux",
+       .interp_path    = "/lib/ld-musl-i386.so.1",
+       .sysvec         = &elf_linux_sysvec,
+       .interp_newpath = NULL,
+       .brand_note     = &linux32_brandnote,
+       .flags          = BI_CAN_EXEC_DYN | BI_BRAND_NOTE
+};
+
 Elf32_Brandinfo *linux_brandlist[] = {
        &linux_brand,
        &linux_glibc2brand,
+       &linux_muslbrand,
        NULL
 };
 

Modified: head/sys/i386/linux/linux_sysvec.c
==============================================================================
--- head/sys/i386/linux/linux_sysvec.c  Mon Jul  3 10:10:04 2017        
(r320594)
+++ head/sys/i386/linux/linux_sysvec.c  Mon Jul  3 10:24:49 2017        
(r320595)
@@ -1120,9 +1120,22 @@ static Elf32_Brandinfo linux_glibc2brand = {
        .flags          = BI_CAN_EXEC_DYN | BI_BRAND_NOTE
 };
 
+static Elf32_Brandinfo linux_muslbrand = {
+       .brand          = ELFOSABI_LINUX,
+       .machine        = EM_386,
+       .compat_3_brand = "Linux",
+       .emul_path      = "/compat/linux",
+       .interp_path    = "/lib/ld-musl-i386.so.1",
+       .sysvec         = &elf_linux_sysvec,
+       .interp_newpath = NULL,
+       .brand_note     = &linux_brandnote,
+       .flags          = BI_CAN_EXEC_DYN | BI_BRAND_NOTE
+};
+
 Elf32_Brandinfo *linux_brandlist[] = {
        &linux_brand,
        &linux_glibc2brand,
+       &linux_muslbrand,
        NULL
 };
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to