svn commit: r315701 - in head/sys: amd64/cloudabi32 amd64/cloudabi64 arm/cloudabi32 arm64/cloudabi64 i386/cloudabi32
Ed Schouten
ed at nuxi.nl
Thu Mar 23 07:43:52 UTC 2017
Hi Kostik,
2017-03-23 0:00 GMT+01:00 Konstantin Belousov <kostikbel at 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 <ed at nuxi.nl>
Nuxi, 's-Hertogenbosch, the Netherlands
KvK-nr.: 62051717
-------------- next part --------------
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)) {
More information about the svn-src-all
mailing list