No se puede compilar el kernel de Linux con la opción -Og/-O0 para fines de depuración

No se puede compilar el kernel de Linux con la opción -Og/-O0 para fines de depuración

Tener hardware personalizado que ejecute Linux integrado (OpenWrt) es una maravilla. CPU: es IMX6ULL (ArmV7), por lo que Jlink la admite para depurar a través de la interfaz JTAG. Al iniciar el servidor GDB y depurar paso a paso el kernel de Linux, se muestran muchos optimized outmensajes debido al kernel compilado con KBUILD_CFLAGS += -O2 -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION)la bandera. Entonces estoy tratando de compilarlo con -O0la siguiente opción:

$ make -j64 V=s all
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CC      scripts/mod/empty.o
  ....
  AR      built-in.o
  LD      vmlinux.o
  MODPOST vmlinux.o
  WARNING: modpost: Found 4 section mismatch(es).
  To see full details build your kernel with:
  'make CONFIG_DEBUG_SECTION_MISMATCH=y'
  arm-openwrt-linux-muslgnueabi-ld: arch/arm/kernel/setup.o: in function `setup_arch':
/opt/eclipse/imx6ull-openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-imx6ull_cortexa7/linux-4.14.199/arch/arm/kernel/setup.c:1134: undefined reference to `psci_smp_ops'
  arm-openwrt-linux-muslgnueabi-ld: /opt/eclipse/imx6ull-openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-imx6ull_cortexa7/linux-4.14.199/arch/arm/kernel/setup.c:1134: undefined reference to `psci_smp_ops'
  arm-openwrt-linux-muslgnueabi-ld: kernel/panic.o: in function `__xchg':
/opt/eclipse/imx6ull-openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-imx6ull_cortexa7/linux-4.14.199/./arch/arm/include/asm/cmpxchg.h:110: undefined reference to `__bad_xchg'
  arm-openwrt-linux-muslgnueabi-ld: kernel/exit.o: in function `__xchg':

Comprobado paraWARNING: modpost: Found x section mismatch(es). aquí. Parece que el archivo binario resultante ocupa más espacio que el configurado por algunas configuraciones. El vmlinuxtamaño construido con -O2opción es 39Mb. El uso -O1me da 37Mbuna imagen, así que espero que haya suficiente espacio en mi RAM DDR3 (128 MB) para una imagen aún más grande compilada con -O0la configuración. Entonces me pregunto cuál es la forma de proporcionar más espacio para las secciones. ¿Alguien podría indicarme un lugar donde puedo hacerlo? Tengo conocimientos limitados sobre el kernel de Linux, por lo que no pude encontrar ningún script de enlace utilizado para eso.

información relacionada