PHONY += stack_protector_prepare
  stack_protector_prepare: prepare0
  ifdef CONFIG_PPC64
 -      $(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' $(objtree)/include/generated/asm-offsets.h))
 +      $(eval KBUILD_CFLAGS += -mstack-protector-guard=tls -mstack-protector-guard-reg=r13 \
-                               -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' include/generated/asm-offsets.h))
++                              -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "PACA_CANARY") print $$3;}' \
++                              $(objtree)/include/generated/asm-offsets.h))
  else
 -      $(eval KBUILD_CFLAGS += -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' $(objtree)/include/generated/asm-offsets.h))
 +      $(eval KBUILD_CFLAGS += -mstack-protector-guard=tls -mstack-protector-guard-reg=r2 \
-                               -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' include/generated/asm-offsets.h))
++                              -mstack-protector-guard-offset=$(shell awk '{if ($$2 == "TASK_CANARY") print $$3;}' \
++                              $(objtree)/include/generated/asm-offsets.h))
  endif
  endif
  
 
  
  rust-analyzer:
        $(Q)$(srctree)/scripts/generate_rust_analyzer.py \
 -              --cfgs='core=$(core-cfgs)' --cfgs='alloc=$(alloc-cfgs)' \
 +              --cfgs='core=$(core-cfgs)' \
                $(realpath $(srctree)) $(realpath $(objtree)) \
-               $(rustc_sysroot) $(RUST_LIB_SRC) $(KBUILD_EXTMOD) > \
-               $(if $(KBUILD_EXTMOD),$(extmod_prefix),$(objtree))/rust-project.json
+               $(rustc_sysroot) $(RUST_LIB_SRC) $(if $(KBUILD_EXTMOD),$(srcroot)) \
+               > rust-project.json
  
  redirect-intrinsics = \
        __addsf3 __eqsf2 __extendsfdf2 __gesf2 __lesf2 __ltsf2 __mulsf3 __nesf2 __truncdfsf2 __unordsf2 \
 
                    !strcmp(sec->name, "__jump_table")                  ||
                    !strcmp(sec->name, "__mcount_loc")                  ||
                    !strcmp(sec->name, ".kcfi_traps")                   ||
+                   !strcmp(sec->name, ".llvm.call-graph-profile")      ||
+                   !strcmp(sec->name, ".llvm_bb_addr_map")             ||
 +                  !strcmp(sec->name, "__tracepoints")                 ||
                    strstr(sec->name, "__patchable_function_entries"))
                        continue;