Merge tag 'perf-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / scripts / link-vmlinux.sh
index d09ab4a..3adef49 100755 (executable)
@@ -55,6 +55,29 @@ modpost_link()
        ${LD} ${KBUILD_LDFLAGS} -r -o ${1} ${objects}
 }
 
+objtool_link()
+{
+       local objtoolopt;
+
+       if [ -n "${CONFIG_VMLINUX_VALIDATION}" ]; then
+               objtoolopt="check"
+               if [ -z "${CONFIG_FRAME_POINTER}" ]; then
+                       objtoolopt="${objtoolopt} --no-fp"
+               fi
+               if [ -n "${CONFIG_GCOV_KERNEL}" ]; then
+                       objtoolopt="${objtoolopt} --no-unreachable"
+               fi
+               if [ -n "${CONFIG_RETPOLINE}" ]; then
+                       objtoolopt="${objtoolopt} --retpoline"
+               fi
+               if [ -n "${CONFIG_X86_SMAP}" ]; then
+                       objtoolopt="${objtoolopt} --uaccess"
+               fi
+               info OBJTOOL ${1}
+               tools/objtool/objtool ${objtoolopt} ${1}
+       fi
+}
+
 # Link of vmlinux
 # ${1} - output file
 # ${2}, ${3}, ... - optional extra .o files
@@ -251,6 +274,7 @@ ${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init need-builtin=1
 #link vmlinux.o
 info LD vmlinux.o
 modpost_link vmlinux.o
+objtool_link vmlinux.o
 
 # modpost vmlinux.o to check for section mismatches
 ${MAKE} -f "${srctree}/scripts/Makefile.modpost" MODPOST_VMLINUX=1