KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
  
  # disable invalid "can't wrap" optimizations for signed / pointers
- KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
+ KBUILD_CFLAGS += -fno-strict-overflow
  
 -# clang sets -fmerge-all-constants by default as optimization, but this
 -# is non-conforming behavior for C and in fact breaks the kernel, so we
 -# need to disable it here generally.
 -KBUILD_CFLAGS += $(call cc-option,-fno-merge-all-constants)
 -
 -# for gcc -fno-merge-all-constants disables everything, but it is fine
 -# to have actual conforming behavior enabled.
 -KBUILD_CFLAGS += $(call cc-option,-fmerge-constants)
 -
  # Make sure -fstack-check isn't enabled (like gentoo apparently did)
- KBUILD_CFLAGS  += $(call cc-option,-fno-stack-check,)
+ KBUILD_CFLAGS  += -fno-stack-check
  
  # conserve stack if available
  KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
 
  KBUILD_LDFLAGS_MODULE += --be8
  endif
  
- ifeq ($(CONFIG_ARM_MODULE_PLTS),y)
- KBUILD_LDS_MODULE     += $(srctree)/arch/arm/kernel/module.lds
- endif
- 
 +# We never want expected sections to be placed heuristically by the
 +# linker. All sections should be explicitly named in the linker script.
 +LDFLAGS_vmlinux += $(call ld-option, --orphan-handling=warn)
 +
  GZFLAGS               :=-9
  #KBUILD_CFLAGS        +=-pipe
  
 
  
  # Keep most options here optional, to allow enabling more compilers if absence
  # of some options does not break KCSAN nor causes false positive reports.
- CFLAGS_KCSAN := -fsanitize=thread \
+ export CFLAGS_KCSAN := -fsanitize=thread \
        $(call cc-option,$(call cc-param,tsan-instrument-func-entry-exit=0) -fno-optimize-sibling-calls) \
 -      $(call cc-option,$(call cc-param,tsan-instrument-read-before-write=1)) \
 +      $(call cc-option,$(call cc-param,tsan-compound-read-before-write=1),$(call cc-option,$(call cc-param,tsan-instrument-read-before-write=1))) \
        $(call cc-param,tsan-distinguish-volatile=1)