libroot: make all areas executable for old binaries
* If at least one image is either B_HAIKU_ABI_GCC_2_ANCIENT or B_HAIKU_ABI_GCC_2_BEOS almost all areas are marked as executable. * B_EXECUTE_AREA and B_STACK_AREA are made public. The former is enforced since the introduction of DEP and apps need it to correctly set area protection. The latter is currently needed only to recognize stack areas and fix their protection in compatibility mode, but may also be useful if an app wants to use sigaltstack from POSIX API.
This commit is contained in:
@@ -15,13 +15,6 @@
|
||||
// Note: the VM probably won't support all combinations - it will try
|
||||
// its best, but create_area() will fail if it has to.
|
||||
// Of course, the exact behaviour will be documented somewhere...
|
||||
#define B_EXECUTE_AREA 0x04
|
||||
#define B_STACK_AREA 0x08
|
||||
// "stack" protection is not available on most platforms - it's used
|
||||
// to only commit memory as needed, and have guard pages at the
|
||||
// bottom of the stack.
|
||||
// "execute" protection is currently ignored, but nevertheless, you
|
||||
// should use it if you require to execute code in that area.
|
||||
|
||||
#define B_KERNEL_EXECUTE_AREA 0x40
|
||||
#define B_KERNEL_STACK_AREA 0x80
|
||||
|
||||
Reference in New Issue
Block a user