summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2009-04-05 09:27:19 +0000
committerdchagin <dchagin@FreeBSD.org>2009-04-05 09:27:19 +0000
commit01bf63c9fb60c7104bfbbcfd5be8c1deab29ea6a (patch)
treed36c5668c15e84db66ecb8e052140097d1a8b901 /sys/mips
parent2a2dfa7d229606cbb1ff3302fab0681c9d4877a1 (diff)
downloadFreeBSD-src-01bf63c9fb60c7104bfbbcfd5be8c1deab29ea6a.zip
FreeBSD-src-01bf63c9fb60c7104bfbbcfd5be8c1deab29ea6a.tar.gz
Fix KBI breakage by r190520 which affects older linux.ko binaries:
1) Move the new field (brand_note) to the end of the Brandinfo structure. 2) Add a new flag BI_BRAND_NOTE that indicates that the brand_note pointer is valid. 3) Use the brand_note field if the flag BI_BRAND_NOTE is set and as old modules won't have the flag set, so the new field brand_note would be ignored. Suggested by: jhb Reviewed by: jhb Approved by: kib (mentor) MFC after: 6 days
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mips/elf64_machdep.c4
-rw-r--r--sys/mips/mips/elf_machdep.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/sys/mips/mips/elf64_machdep.c b/sys/mips/mips/elf64_machdep.c
index dffa134..c10fb5f 100644
--- a/sys/mips/mips/elf64_machdep.c
+++ b/sys/mips/mips/elf64_machdep.c
@@ -89,7 +89,7 @@ static Elf64_Brandinfo freebsd_brand_gnutools_info64 = {
.sysvec = &elf64_freebsd_sysvec,
.interp_path = "/libexec/ld-elf.so.1",
.brand_note = &elf64_freebsd_brandnote,
- .flags = BI_CAN_EXEC_DYN
+ .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE
};
SYSINIT(gnu_mips_elf64, SI_SUB_EXEC, SI_ORDER_ANY,
@@ -105,7 +105,7 @@ static Elf64_Brandinfo freebsd_brand_info64 = {
.sysvec = &elf64_freebsd_sysvec,
.interp_newpath = NULL,
.brand_note = &elf64_freebsd_brandnote,
- .flags = 0
+ .flags = BI_BRAND_NOTE
};
SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_ANY,
diff --git a/sys/mips/mips/elf_machdep.c b/sys/mips/mips/elf_machdep.c
index 8eade98..19cb1a1 100644
--- a/sys/mips/mips/elf_machdep.c
+++ b/sys/mips/mips/elf_machdep.c
@@ -87,7 +87,7 @@ static Elf32_Brandinfo freebsd_brand_info = {
.sysvec = &elf32_freebsd_sysvec,
.interp_newpath = NULL,
.brand_note = &elf32_freebsd_brandnote,
- .flags = 0
+ .flags = BI_BRAND_NOTE
};
SYSINIT(elf32, SI_SUB_EXEC, SI_ORDER_ANY,
OpenPOWER on IntegriCloud