comparison src/os/linux/vm/os_linux.cpp @ 5909:9eaf473fff9b

7142641: -Xshared:on fails on ARM Summary: map read-only pages MAP_PRIVATE instead of MAP_SHARED Reviewed-by: dcubed, dholmes Contributed-by: dean.long@oracle.com
author dlong
date Wed, 29 Feb 2012 12:58:49 -0500
parents de268c8a8075
children cf956638b844
comparison
equal deleted inserted replaced
4966:701a83c86f28 5909:9eaf473fff9b
4688 // Map a block of memory. 4688 // Map a block of memory.
4689 char* os::map_memory(int fd, const char* file_name, size_t file_offset, 4689 char* os::map_memory(int fd, const char* file_name, size_t file_offset,
4690 char *addr, size_t bytes, bool read_only, 4690 char *addr, size_t bytes, bool read_only,
4691 bool allow_exec) { 4691 bool allow_exec) {
4692 int prot; 4692 int prot;
4693 int flags; 4693 int flags = MAP_PRIVATE;
4694 4694
4695 if (read_only) { 4695 if (read_only) {
4696 prot = PROT_READ; 4696 prot = PROT_READ;
4697 flags = MAP_SHARED;
4698 } else { 4697 } else {
4699 prot = PROT_READ | PROT_WRITE; 4698 prot = PROT_READ | PROT_WRITE;
4700 flags = MAP_PRIVATE;
4701 } 4699 }
4702 4700
4703 if (allow_exec) { 4701 if (allow_exec) {
4704 prot |= PROT_EXEC; 4702 prot |= PROT_EXEC;
4705 } 4703 }