diff options
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | arch/x86/entry/vdso/Makefile | 6 |
2 files changed, 8 insertions, 2 deletions
| @@ -507,9 +507,13 @@ KBUILD_AFLAGS += $(call cc-option, -no-integrated-as) | |||
| 507 | endif | 507 | endif |
| 508 | 508 | ||
| 509 | RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register | 509 | RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register |
| 510 | RETPOLINE_VDSO_CFLAGS_GCC := -mindirect-branch=thunk-inline -mindirect-branch-register | ||
| 510 | RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk | 511 | RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk |
| 512 | RETPOLINE_VDSO_CFLAGS_CLANG := -mretpoline | ||
| 511 | RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) | 513 | RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) |
| 514 | RETPOLINE_VDSO_CFLAGS := $(call cc-option,$(RETPOLINE_VDSO_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_VDSO_CFLAGS_CLANG))) | ||
| 512 | export RETPOLINE_CFLAGS | 515 | export RETPOLINE_CFLAGS |
| 516 | export RETPOLINE_VDSO_CFLAGS | ||
| 513 | 517 | ||
| 514 | KBUILD_CFLAGS += $(call cc-option,-fno-PIE) | 518 | KBUILD_CFLAGS += $(call cc-option,-fno-PIE) |
| 515 | KBUILD_AFLAGS += $(call cc-option,-fno-PIE) | 519 | KBUILD_AFLAGS += $(call cc-option,-fno-PIE) |
diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile index 9f695f517747..fa3f439f0a92 100644 --- a/arch/x86/entry/vdso/Makefile +++ b/arch/x86/entry/vdso/Makefile | |||
| @@ -68,9 +68,9 @@ $(obj)/vdso-image-%.c: $(obj)/vdso%.so.dbg $(obj)/vdso%.so $(obj)/vdso2c FORCE | |||
| 68 | CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \ | 68 | CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \ |
| 69 | $(filter -g%,$(KBUILD_CFLAGS)) $(call cc-option, -fno-stack-protector) \ | 69 | $(filter -g%,$(KBUILD_CFLAGS)) $(call cc-option, -fno-stack-protector) \ |
| 70 | -fno-omit-frame-pointer -foptimize-sibling-calls \ | 70 | -fno-omit-frame-pointer -foptimize-sibling-calls \ |
| 71 | -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO | 71 | -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO $(RETPOLINE_VDSO_CFLAGS) |
| 72 | 72 | ||
| 73 | $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS)) $(CFL) | 73 | $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(RETPOLINE_CFLAGS),$(KBUILD_CFLAGS)) $(CFL) |
| 74 | 74 | ||
| 75 | # | 75 | # |
| 76 | # vDSO code runs in userspace and -pg doesn't help with profiling anyway. | 76 | # vDSO code runs in userspace and -pg doesn't help with profiling anyway. |
| @@ -132,11 +132,13 @@ KBUILD_CFLAGS_32 := $(filter-out -mcmodel=kernel,$(KBUILD_CFLAGS_32)) | |||
| 132 | KBUILD_CFLAGS_32 := $(filter-out -fno-pic,$(KBUILD_CFLAGS_32)) | 132 | KBUILD_CFLAGS_32 := $(filter-out -fno-pic,$(KBUILD_CFLAGS_32)) |
| 133 | KBUILD_CFLAGS_32 := $(filter-out -mfentry,$(KBUILD_CFLAGS_32)) | 133 | KBUILD_CFLAGS_32 := $(filter-out -mfentry,$(KBUILD_CFLAGS_32)) |
| 134 | KBUILD_CFLAGS_32 := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS_32)) | 134 | KBUILD_CFLAGS_32 := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS_32)) |
| 135 | KBUILD_CFLAGS_32 := $(filter-out $(RETPOLINE_CFLAGS),$(KBUILD_CFLAGS_32)) | ||
| 135 | KBUILD_CFLAGS_32 += -m32 -msoft-float -mregparm=0 -fpic | 136 | KBUILD_CFLAGS_32 += -m32 -msoft-float -mregparm=0 -fpic |
| 136 | KBUILD_CFLAGS_32 += $(call cc-option, -fno-stack-protector) | 137 | KBUILD_CFLAGS_32 += $(call cc-option, -fno-stack-protector) |
| 137 | KBUILD_CFLAGS_32 += $(call cc-option, -foptimize-sibling-calls) | 138 | KBUILD_CFLAGS_32 += $(call cc-option, -foptimize-sibling-calls) |
| 138 | KBUILD_CFLAGS_32 += -fno-omit-frame-pointer | 139 | KBUILD_CFLAGS_32 += -fno-omit-frame-pointer |
| 139 | KBUILD_CFLAGS_32 += -DDISABLE_BRANCH_PROFILING | 140 | KBUILD_CFLAGS_32 += -DDISABLE_BRANCH_PROFILING |
| 141 | KBUILD_CFLAGS_32 += $(RETPOLINE_VDSO_CFLAGS) | ||
| 140 | $(obj)/vdso32.so.dbg: KBUILD_CFLAGS = $(KBUILD_CFLAGS_32) | 142 | $(obj)/vdso32.so.dbg: KBUILD_CFLAGS = $(KBUILD_CFLAGS_32) |
| 141 | 143 | ||
| 142 | $(obj)/vdso32.so.dbg: FORCE \ | 144 | $(obj)/vdso32.so.dbg: FORCE \ |
