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:
@@ -18,6 +18,8 @@ struct real_time_data;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern int __gCompatibilityMode;
|
||||
|
||||
extern char _single_threaded;
|
||||
/* This determines if a process runs single threaded or not */
|
||||
|
||||
@@ -31,7 +33,7 @@ status_t __flatten_process_args(const char* const* args, int32 argCount,
|
||||
size_t* _flatSize);
|
||||
void _call_atexit_hooks_for_range(addr_t start, addr_t size);
|
||||
void __init_env(const struct user_space_program_args *args);
|
||||
void __init_heap(void);
|
||||
status_t __init_heap(void);
|
||||
void __init_heap_post_env(void);
|
||||
|
||||
void __init_time(addr_t commPageTable);
|
||||
@@ -42,6 +44,8 @@ void __init_pwd_backend(void);
|
||||
void __reinit_pwd_backend_after_fork(void);
|
||||
void* __arch_get_caller(void);
|
||||
|
||||
void __set_stack_protection(void);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user