aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-02-10 12:14:13 +0100
committerDmitry Vyukov <dvyukov@google.com>2018-02-10 12:14:13 +0100
commite67d44e011483caf2723a34b9d5f6e467ec78e24 (patch)
treed1e5315326a5c5313f47ab4e331029ca74d94c7d
parent2b6b214cf2fc16447250192774f9c8e124793c50 (diff)
executor: compile with -O2
We don't frequently debug it and it does some intensive computations on coverage, so no reason to not compile with -O2.
-rw-r--r--Makefile2
-rw-r--r--executor/common_kvm_amd64.h21
-rw-r--r--pkg/csource/linux_common.go21
3 files changed, 23 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index 618064ec7..0c12a4b9c 100644
--- a/Makefile
+++ b/Makefile
@@ -116,7 +116,7 @@ target:
executor:
mkdir -p ./bin/$(TARGETOS)_$(TARGETARCH)
$(CC) -o ./bin/$(TARGETOS)_$(TARGETARCH)/syz-executor$(EXE) executor/executor_$(TARGETOS).cc \
- -pthread -Wall -Wframe-larger-than=8192 -Wparentheses -Werror -O1 \
+ -pthread -Wall -Wframe-larger-than=8192 -Wparentheses -Werror -O2 \
$(ADDCFLAGS) $(CFLAGS) -DGOOS=\"$(TARGETOS)\" -DGIT_REVISION=\"$(REV)\"
manager:
diff --git a/executor/common_kvm_amd64.h b/executor/common_kvm_amd64.h
index f3fb8f8b6..9eb70f71f 100644
--- a/executor/common_kvm_amd64.h
+++ b/executor/common_kvm_amd64.h
@@ -158,17 +158,18 @@ static void setup_syscall_msrs(int cpufd, uint16 sel_cs, uint16 sel_cs_cpl3)
char buf[sizeof(struct kvm_msrs) + 5 * sizeof(struct kvm_msr_entry)];
memset(buf, 0, sizeof(buf));
struct kvm_msrs* msrs = (struct kvm_msrs*)buf;
+ struct kvm_msr_entry* entries = msrs->entries;
msrs->nmsrs = 5;
- msrs->entries[0].index = MSR_IA32_SYSENTER_CS;
- msrs->entries[0].data = sel_cs;
- msrs->entries[1].index = MSR_IA32_SYSENTER_ESP;
- msrs->entries[1].data = ADDR_STACK0;
- msrs->entries[2].index = MSR_IA32_SYSENTER_EIP;
- msrs->entries[2].data = ADDR_VAR_SYSEXIT;
- msrs->entries[3].index = MSR_IA32_STAR;
- msrs->entries[3].data = ((uint64)sel_cs << 32) | ((uint64)sel_cs_cpl3 << 48);
- msrs->entries[4].index = MSR_IA32_LSTAR;
- msrs->entries[4].data = ADDR_VAR_SYSRET;
+ entries[0].index = MSR_IA32_SYSENTER_CS;
+ entries[0].data = sel_cs;
+ entries[1].index = MSR_IA32_SYSENTER_ESP;
+ entries[1].data = ADDR_STACK0;
+ entries[2].index = MSR_IA32_SYSENTER_EIP;
+ entries[2].data = ADDR_VAR_SYSEXIT;
+ entries[3].index = MSR_IA32_STAR;
+ entries[3].data = ((uint64)sel_cs << 32) | ((uint64)sel_cs_cpl3 << 48);
+ entries[4].index = MSR_IA32_LSTAR;
+ entries[4].data = ADDR_VAR_SYSRET;
ioctl(cpufd, KVM_SET_MSRS, msrs);
}
diff --git a/pkg/csource/linux_common.go b/pkg/csource/linux_common.go
index 4f16dc7fc..8b3402903 100644
--- a/pkg/csource/linux_common.go
+++ b/pkg/csource/linux_common.go
@@ -1045,17 +1045,18 @@ static void setup_syscall_msrs(int cpufd, uint16 sel_cs, uint16 sel_cs_cpl3)
char buf[sizeof(struct kvm_msrs) + 5 * sizeof(struct kvm_msr_entry)];
memset(buf, 0, sizeof(buf));
struct kvm_msrs* msrs = (struct kvm_msrs*)buf;
+ struct kvm_msr_entry* entries = msrs->entries;
msrs->nmsrs = 5;
- msrs->entries[0].index = MSR_IA32_SYSENTER_CS;
- msrs->entries[0].data = sel_cs;
- msrs->entries[1].index = MSR_IA32_SYSENTER_ESP;
- msrs->entries[1].data = ADDR_STACK0;
- msrs->entries[2].index = MSR_IA32_SYSENTER_EIP;
- msrs->entries[2].data = ADDR_VAR_SYSEXIT;
- msrs->entries[3].index = MSR_IA32_STAR;
- msrs->entries[3].data = ((uint64)sel_cs << 32) | ((uint64)sel_cs_cpl3 << 48);
- msrs->entries[4].index = MSR_IA32_LSTAR;
- msrs->entries[4].data = ADDR_VAR_SYSRET;
+ entries[0].index = MSR_IA32_SYSENTER_CS;
+ entries[0].data = sel_cs;
+ entries[1].index = MSR_IA32_SYSENTER_ESP;
+ entries[1].data = ADDR_STACK0;
+ entries[2].index = MSR_IA32_SYSENTER_EIP;
+ entries[2].data = ADDR_VAR_SYSEXIT;
+ entries[3].index = MSR_IA32_STAR;
+ entries[3].data = ((uint64)sel_cs << 32) | ((uint64)sel_cs_cpl3 << 48);
+ entries[4].index = MSR_IA32_LSTAR;
+ entries[4].data = ADDR_VAR_SYSRET;
ioctl(cpufd, KVM_SET_MSRS, msrs);
}