Hi Kostik,

2017-03-23 0:00 GMT+01:00 Konstantin Belousov <kostik...@gmail.com>:
> On Wed, Mar 22, 2017 at 03:16:24PM +0100, Ed Schouten wrote:
>> Similarly, I seem to remember CloudABI's brandinfos set compat_3_brand
>> for a similar reason: it seems to be required by imgact_elf.c. Would
>> we also want to change that?
>
> Could you please try this ?

Thanks! I just gave the patch a try, but the comparison added to
imgact_elf.c now causes the brandinfo to be skipped entirely. Attached
is a patch that does work for me.

-- 
Ed Schouten <e...@nuxi.nl>
Nuxi, 's-Hertogenbosch, the Netherlands
KvK-nr.: 62051717
Index: sys/amd64/cloudabi32/cloudabi32_sysvec.c
===================================================================
--- sys/amd64/cloudabi32/cloudabi32_sysvec.c    (revision 315828)
+++ sys/amd64/cloudabi32/cloudabi32_sysvec.c    (working copy)
@@ -227,6 +227,5 @@
        .brand          = ELFOSABI_CLOUDABI,
        .machine        = EM_386,
        .sysvec         = &cloudabi32_elf_sysvec,
-       .compat_3_brand = "CloudABI",
        .flags          = BI_BRAND_ONLY_STATIC,
 };
Index: sys/amd64/cloudabi64/cloudabi64_sysvec.c
===================================================================
--- sys/amd64/cloudabi64/cloudabi64_sysvec.c    (revision 315828)
+++ sys/amd64/cloudabi64/cloudabi64_sysvec.c    (working copy)
@@ -213,5 +213,4 @@
        .machine        = EM_X86_64,
        .sysvec         = &cloudabi64_elf_sysvec,
        .flags          = BI_CAN_EXEC_DYN | BI_BRAND_ONLY_STATIC,
-       .compat_3_brand = "CloudABI",
 };
Index: sys/arm/cloudabi32/cloudabi32_sysvec.c
===================================================================
--- sys/arm/cloudabi32/cloudabi32_sysvec.c      (revision 315828)
+++ sys/arm/cloudabi32/cloudabi32_sysvec.c      (working copy)
@@ -189,6 +189,5 @@
        .brand          = ELFOSABI_CLOUDABI,
        .machine        = EM_ARM,
        .sysvec         = &cloudabi32_elf_sysvec,
-       .compat_3_brand = "CloudABI",
        .flags          = BI_BRAND_ONLY_STATIC,
 };
Index: sys/arm64/cloudabi64/cloudabi64_sysvec.c
===================================================================
--- sys/arm64/cloudabi64/cloudabi64_sysvec.c    (revision 315828)
+++ sys/arm64/cloudabi64/cloudabi64_sysvec.c    (working copy)
@@ -182,5 +182,4 @@
        .machine        = EM_AARCH64,
        .sysvec         = &cloudabi64_elf_sysvec,
        .flags          = BI_CAN_EXEC_DYN | BI_BRAND_ONLY_STATIC,
-       .compat_3_brand = "CloudABI",
 };
Index: sys/i386/cloudabi32/cloudabi32_sysvec.c
===================================================================
--- sys/i386/cloudabi32/cloudabi32_sysvec.c     (revision 315828)
+++ sys/i386/cloudabi32/cloudabi32_sysvec.c     (working copy)
@@ -200,6 +200,5 @@
        .brand          = ELFOSABI_CLOUDABI,
        .machine        = EM_386,
        .sysvec         = &cloudabi32_elf_sysvec,
-       .compat_3_brand = "CloudABI",
        .flags          = BI_BRAND_ONLY_STATIC,
 };
Index: sys/kern/imgact_elf.c
===================================================================
--- sys/kern/imgact_elf.c       (revision 315828)
+++ sys/kern/imgact_elf.c       (working copy)
@@ -312,8 +312,9 @@
                        continue;
                if (hdr->e_machine == bi->machine &&
                    (hdr->e_ident[EI_OSABI] == bi->brand ||
+                   (bi->compat_3_brand != NULL &&
                    strcmp((const char *)&hdr->e_ident[OLD_EI_BRAND],
-                   bi->compat_3_brand) == 0)) {
+                   bi->compat_3_brand) == 0))) {
                        /* Looks good, but give brand a chance to veto */
                        if (!bi->header_supported ||
                            bi->header_supported(imgp)) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to