Revert "[BOLT][Instrumentation][NFC] define and use mmap flags"
This reverts commit f0b45fba4b64ab0b5d6c50d978e02f0d12d4d070. The stack broke https://lab.llvm.org/buildbot/#/builders/252.
This commit is contained in:
parent
d1849045fc
commit
3e13b299f9
@ -82,30 +82,6 @@ typedef int int32_t;
|
||||
"pop %%rbx\n" \
|
||||
"pop %%rax\n"
|
||||
|
||||
#define PROT_READ 0x1 /* Page can be read. */
|
||||
#define PROT_WRITE 0x2 /* Page can be written. */
|
||||
#define PROT_EXEC 0x4 /* Page can be executed. */
|
||||
#define PROT_NONE 0x0 /* Page can not be accessed. */
|
||||
#define PROT_GROWSDOWN \
|
||||
0x01000000 /* Extend change to start of \
|
||||
growsdown vma (mprotect only). */
|
||||
#define PROT_GROWSUP \
|
||||
0x02000000 /* Extend change to start of \
|
||||
growsup vma (mprotect only). */
|
||||
|
||||
/* Sharing types (must choose one and only one of these). */
|
||||
#define MAP_SHARED 0x01 /* Share changes. */
|
||||
#define MAP_PRIVATE 0x02 /* Changes are private. */
|
||||
#define MAP_FIXED 0x10 /* Interpret addr exactly. */
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#define MAP_ANONYMOUS 0x1000
|
||||
#else
|
||||
#define MAP_ANONYMOUS 0x20
|
||||
#endif
|
||||
|
||||
#define MAP_FAILED ((void *)-1)
|
||||
|
||||
// Functions that are required by freestanding environment. Compiler may
|
||||
// generate calls to these implicitly.
|
||||
extern "C" {
|
||||
|
@ -134,9 +134,16 @@ public:
|
||||
Lock L(M);
|
||||
|
||||
if (StackBase == nullptr) {
|
||||
#if defined(__APPLE__)
|
||||
int MAP_PRIVATE_MAP_ANONYMOUS = 0x1002;
|
||||
#else
|
||||
int MAP_PRIVATE_MAP_ANONYMOUS = 0x22;
|
||||
#endif
|
||||
StackBase = reinterpret_cast<uint8_t *>(
|
||||
__mmap(0, MaxSize, PROT_READ | PROT_WRITE,
|
||||
(Shared ? MAP_SHARED : MAP_PRIVATE) | MAP_ANONYMOUS, -1, 0));
|
||||
__mmap(0, MaxSize, 0x3 /* PROT_READ | PROT_WRITE*/,
|
||||
Shared ? 0x21 /*MAP_SHARED | MAP_ANONYMOUS*/
|
||||
: MAP_PRIVATE_MAP_ANONYMOUS /* MAP_PRIVATE | MAP_ANONYMOUS*/,
|
||||
-1, 0));
|
||||
StackSize = 0;
|
||||
}
|
||||
|
||||
@ -707,7 +714,7 @@ ProfileWriterContext readDescriptions() {
|
||||
// mmap our binary to memory
|
||||
uint64_t Size = __lseek(FD, 0, 2 /*SEEK_END*/);
|
||||
uint8_t *BinContents = reinterpret_cast<uint8_t *>(
|
||||
__mmap(0, Size, PROT_READ, MAP_PRIVATE, FD, 0));
|
||||
__mmap(0, Size, 0x1 /* PROT_READ*/, 0x2 /* MAP_PRIVATE*/, FD, 0));
|
||||
Result.MMapPtr = BinContents;
|
||||
Result.MMapSize = Size;
|
||||
Elf64_Ehdr *Hdr = reinterpret_cast<Elf64_Ehdr *>(BinContents);
|
||||
@ -1593,9 +1600,10 @@ extern "C" void __attribute((force_align_arg_pointer)) __bolt_instr_setup() {
|
||||
assert (CountersEnd > CountersStart, "no counters");
|
||||
// Maps our counters to be shared instead of private, so we keep counting for
|
||||
// forked processes
|
||||
void *Ret =
|
||||
__mmap(CountersStart, CountersEnd - CountersStart, PROT_READ | PROT_WRITE,
|
||||
MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED, -1, 0);
|
||||
__mmap(CountersStart, CountersEnd - CountersStart,
|
||||
0x3 /*PROT_READ|PROT_WRITE*/,
|
||||
0x31 /*MAP_ANONYMOUS | MAP_SHARED | MAP_FIXED*/, -1, 0);
|
||||
|
||||
__bolt_ind_call_counter_func_pointer = __bolt_instr_indirect_call;
|
||||
__bolt_ind_tailcall_counter_func_pointer = __bolt_instr_indirect_tailcall;
|
||||
// Conservatively reserve 100MiB shared pages
|
||||
|
Loading…
x
Reference in New Issue
Block a user