Description of problem: 在openeuler系统上编译iodump发现编译错,是因为头文件usr/src/kernels/4.19.90-24.4.v2101.ky10.x86_64/include/linux/stacktrace.h和anlios的不一样,而上游内核的头文件和openeuler是一致的,和centos/anlios不一致,上游社区对该文件的修改的commit为: commit 6195638dc86258dc6154bf33546e15134697a680 Author: Thomas Gleixner <tglx@linutronix.de> Date: Thu Apr 25 11:44:55 2019 +0200 stacktrace: Provide helpers for common stack trace operations Mainline: e9b98e162aa53cbea7c8b0d6c9d5dc6e0f822b9c Category: Feature CVE: NA All operations with stack traces are based on struct stack_trace. That's a horrible construct as the struct is a kitchen sink for input and output. Quite some usage sites embed it into their own data structures which creates weird indirections. There is absolutely no point in doing so. For all use cases a storage array and the number of valid stack trace entries in the array is sufficient. Provide helper functions which avoid the struct stack_trace indirection so the usage sites can be cleaned up. 这个anlios会考虑跟上游文件保持一致,将该commit引入吗? How reproducible: Steps to Reproduce: 1.安装openeuler系统,下载iodump源码,并进入源码目录 2.执行make命令 Actual results: make报错,原因是头文件include/linux/stacktrace.h和anlios不一样 Expected results: 将kernel上游的修改引入anlios内核中,使得该头文件保持一致。 Additional info:
x86上报错,arm上没有报错,没有报错原因是arm的/boot/configure-*文件里没有CONFIG_ARCH_STACKWALK=y,就不会进入stacktrace.h里的#ifdef CONFIG_ARCH_STACKWALK分支。