summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2005-12-26 21:23:57 +0000
committersobomax <sobomax@FreeBSD.org>2005-12-26 21:23:57 +0000
commit34fa5a81a54eaa10eb4a68d7f7e3345ece4f9e28 (patch)
tree915d25cef97f2d33bc2aa9fb449ee4c0faa7722d /sys/alpha
parentb9da93266fdc570180552a109592b65aedf45357 (diff)
downloadFreeBSD-src-34fa5a81a54eaa10eb4a68d7f7e3345ece4f9e28.zip
FreeBSD-src-34fa5a81a54eaa10eb4a68d7f7e3345ece4f9e28.tar.gz
Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure
with flags bitfield and set BI_CAN_EXEC_DYN flag for all brands that usually allow executing elf dynamic binaries (aka shared libraries). When it is requested to execute ET_DYN elf image check if this flag is on after we know the elf brand allowing execution if so. PR: kern/87615 Submitted by: Marcin Koziej <creep@desk.pl>
Diffstat (limited to 'sys/alpha')
-rw-r--r--sys/alpha/alpha/elf_machdep.c2
-rw-r--r--sys/alpha/linux/linux_sysvec.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/alpha/alpha/elf_machdep.c b/sys/alpha/alpha/elf_machdep.c
index 6a3c060..88b665a 100644
--- a/sys/alpha/alpha/elf_machdep.c
+++ b/sys/alpha/alpha/elf_machdep.c
@@ -85,6 +85,7 @@ static Elf64_Brandinfo freebsd_brand_info = {
"/libexec/ld-elf.so.1",
&elf64_freebsd_sysvec,
NULL,
+ 0,
};
SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_ANY,
@@ -99,6 +100,7 @@ static Elf64_Brandinfo freebsd_brand_oinfo = {
"/usr/libexec/ld-elf.so.1",
&elf64_freebsd_sysvec,
NULL,
+ 0,
};
SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_ANY,
diff --git a/sys/alpha/linux/linux_sysvec.c b/sys/alpha/linux/linux_sysvec.c
index 4ec2957..61f7875 100644
--- a/sys/alpha/linux/linux_sysvec.c
+++ b/sys/alpha/linux/linux_sysvec.c
@@ -208,6 +208,7 @@ static Elf64_Brandinfo linux_brand = {
"/lib/ld-linux.so.1",
&elf_linux_sysvec,
NULL,
+ BI_CAN_EXEC_DYN,
};
static Elf64_Brandinfo linux_glibc2brand = {
@@ -218,6 +219,7 @@ static Elf64_Brandinfo linux_glibc2brand = {
"/lib/ld-linux.so.2",
&elf_linux_sysvec,
NULL,
+ BI_CAN_EXEC_DYN,
};
Elf64_Brandinfo *linux_brandlist[] = {
OpenPOWER on IntegriCloud