Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F176834776
D22574.1793453846.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None
D22574.1793453846.diff
View Options
Index: share/man/man4/linux.4
===================================================================
--- share/man/man4/linux.4
+++ share/man/man4/linux.4
@@ -95,6 +95,10 @@
.Xr loader 8
tunables:
.Bl -tag -width indent
+.It Va compat.linux.emul_path
+Path to the Linux run-time environment.
+Defaults to
+.Pa /compat/linux .
.It Va compat.linux.osname
Linux kernel operating system name.
.It Va compat.linux.osrelease
Index: sys/amd64/linux/linux_sysvec.c
===================================================================
--- sys/amd64/linux/linux_sysvec.c
+++ sys/amd64/linux/linux_sysvec.c
@@ -823,7 +823,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_X86_64,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib64/ld-linux-x86-64.so.2",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
@@ -835,7 +835,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_X86_64,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib64/ld-linux.so.2",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
@@ -847,7 +847,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_X86_64,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib/ld-musl-x86_64.so.1",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
Index: sys/amd64/linux32/linux32_sysvec.c
===================================================================
--- sys/amd64/linux32/linux32_sysvec.c
+++ sys/amd64/linux32/linux32_sysvec.c
@@ -977,7 +977,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_386,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib/ld-linux.so.1",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
@@ -989,7 +989,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_386,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib/ld-linux.so.2",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
@@ -1001,7 +1001,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_386,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib/ld-musl-i386.so.1",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
Index: sys/arm64/linux/linux_sysvec.c
===================================================================
--- sys/arm64/linux/linux_sysvec.c
+++ sys/arm64/linux/linux_sysvec.c
@@ -480,7 +480,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_AARCH64,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib64/ld-linux-x86-64.so.2",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
Index: sys/compat/linux/linux_util.h
===================================================================
--- sys/compat/linux/linux_util.h
+++ sys/compat/linux/linux_util.h
@@ -50,7 +50,7 @@
MALLOC_DECLARE(M_FUTEX);
MALLOC_DECLARE(M_FUTEX_WP);
-extern const char linux_emul_path[];
+extern char linux_emul_path[];
int linux_emul_convpath(struct thread *, const char *, enum uio_seg, char **, int, int);
Index: sys/compat/linux/linux_util.c
===================================================================
--- sys/compat/linux/linux_util.c
+++ sys/compat/linux/linux_util.c
@@ -46,11 +46,13 @@
#include <sys/proc.h>
#include <sys/sdt.h>
#include <sys/syscallsubr.h>
+#include <sys/sysctl.h>
#include <sys/systm.h>
#include <sys/vnode.h>
#include <machine/stdarg.h>
+#include <compat/linux/linux_mib.h>
#include <compat/linux/linux_util.h>
MALLOC_DEFINE(M_LINUX, "linux", "Linux mode structures");
@@ -58,7 +60,10 @@
MALLOC_DEFINE(M_FUTEX, "futex", "Linux futexes");
MALLOC_DEFINE(M_FUTEX_WP, "futex wp", "Linux futex waiting proc");
-const char linux_emul_path[] = "/compat/linux";
+char linux_emul_path[MAXPATHLEN] = "/compat/linux";
+
+SYSCTL_STRING(_compat_linux, OID_AUTO, emul_path, CTLFLAG_RWTUN,
+ linux_emul_path, sizeof(linux_emul_path), "Binary prefix path");
/*
* Search an alternate path before passing pathname arguments on to
Index: sys/i386/linux/linux_sysvec.c
===================================================================
--- sys/i386/linux/linux_sysvec.c
+++ sys/i386/linux/linux_sysvec.c
@@ -955,7 +955,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_386,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib/ld-linux.so.1",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
@@ -967,7 +967,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_386,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib/ld-linux.so.2",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
@@ -979,7 +979,7 @@
.brand = ELFOSABI_LINUX,
.machine = EM_386,
.compat_3_brand = "Linux",
- .emul_path = "/compat/linux",
+ .emul_path = linux_emul_path,
.interp_path = "/lib/ld-musl-i386.so.1",
.sysvec = &elf_linux_sysvec,
.interp_newpath = NULL,
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Oct 31, 1:37 PM (9 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41264834
Default Alt Text
D22574.1793453846.diff (5 KB)
Attached To
Mode
D22574: Add compat.linux.emul_path
Attached
Detach File
Event Timeline