binfmt/ and sched/group: Re-architect the way that loadable ELF or NXFLAT modules are unloaded. Memory resources must be recovered when the task loaded into memory exits. The originmal implementatino used the death-of-child SIGCHLD signal to perform the unload. There are several problems with this: It is overly complex, it requires that the parent task stay resident while the loaded task runs, and it has fatal logic flaws in the protected and kernel model builds because the user signal handler attempts to run in the kernel address space. This commit corrects with using a mindlessly simply BINFMT callback when the task exits.

This commit is contained in:
Gregory Nutt
2018-08-05 08:09:54 -06:00
parent 3e814eb160
commit 20a86dfc1b
14 changed files with 325 additions and 375 deletions
+15 -4
View File
@@ -28,9 +28,23 @@ config PATH_INITIAL
The initial value of the PATH variable. This is the colon-separated
list of absolute paths. E.g., "/bin:/usr/bin:/sbin"
config BINFMT_LOADABLE
bool
default n
---help---
Automatically selected if a loadable binary format is selected.
config PIC
bool
default n
---help---
Automatically selected if the binary format requires position
independent operation.
config NXFLAT
bool "Enable the NXFLAT Binary Format"
default n
select BINFMT_LOADABLE
select PIC
---help---
Enable support for the NXFLAT binary format. Default: n
@@ -42,6 +56,7 @@ endif
config ELF
bool "Enable the ELF Binary Format"
default n
select BINFMT_LOADABLE
select LIBC_ARCH_ELF
---help---
Enable support for the ELF binary format. Default: n
@@ -96,10 +111,6 @@ endif
endif
config PIC
bool
default n
config BINFMT_CONSTRUCTORS
bool "C++ Static Constructor Support"
default n