Hi, I played a bit more with this. I was irritated when I saw in my full make lines -fstack-protector-strong and -fno-stack-protector simultaneously, especially in x86/vdso. First, I tried... CC_STACKPROTECTOR_NONE n -> y CC_STACKPROTECTOR_STRONG y -> n This breaks at the same place in the same way (see attached file). Then I tried to filter-out -fstack-protector-strong in the relevant code parts with CC_STACKPROTECTOR_STRONG=y... diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile index d998a487c9b1..5482e453a8ca 100644 --- a/arch/x86/entry/vdso/Makefile +++ b/arch/x86/entry/vdso/Makefile @@ -73,6 +73,7 @@ CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \ $(filter -g%,$(KBUILD_CFLAGS)) $(call cc-option, -fno-stack-protector) \ -fno-omit-frame-pointer -foptimize-sibling-calls \ -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO +CFL += $(filter-out -fstack-protector-strong,$(KBUILD_CFLAGS)) $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS)) $(CFL) @@ -141,6 +142,7 @@ KBUILD_CFLAGS_32 := $(filter-out -mcmodel=kernel,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out -fno-pic,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out -mfentry,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS_32)) +KBUILD_CFLAGS_32 := $(filter-out -fstack-protector-strong,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 += -m32 -msoft-float -mregparm=0 -fpic KBUILD_CFLAGS_32 += $(call cc-option, -fno-stack-protector) KBUILD_CFLAGS_32 += $(call cc-option, -foptimize-sibling-calls) This breaks... if [ "" = "-pg" ]; then if [ arch/x86/entry/vdso/vgetcpu.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount "arch/x86/entry/vdso/vgetcpu.o"; fi; fi; mycompiler -nostdlib -o arch/x86/entry/vdso/vdso64.so.dbg -fPIC -shared -Wl,--hash-style=both -Wl,--build-id -Wl,-Bsymbolic -m64 -Wl,-soname=linux-vdso.so.1 -Wl,--no-undefined -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 -Wl,-T,arch/x86/entry/vdso/vdso.lds arch/x86/entry/vdso/vdso-note.o arch/x86/entry/vdso/vclock_gettime.o arch/x86/entry/vdso/vgetcpu.o && sh ./arch/x86/entry/vdso/checkundef.sh 'nm' 'arch/x86/entry/vdso/vdso64.so.dbg' /usr/bin/ld: arch/x86/entry/vdso/vclock_gettime.o: relocation R_X86_64_32S against undefined hidden symbol `vvar_vsyscall_gtod_data' can not be used when making a shared object /usr/bin/ld: final link failed: Nonrepresentable section on output clang: error: linker command failed with exit code 1 (use -v to see invocation) objcopy -S --localize-hidden arch/x86/entry/vdso/vdso64.so.dbg arch/x86/entry/vdso/vdso64.so objcopy: 'arch/x86/entry/vdso/vdso64.so.dbg': No such file arch/x86/entry/vdso/Makefile:124: recipe for target 'arch/x86/entry/vdso/vdso64.so' failed make[6]: *** [arch/x86/entry/vdso/vdso64.so] Error 1 Cannot say stack-protector kconfig settings have an impact on this all. Thanks. Regards, - Sedat -