Bug 5959 - 头文件include/linux/stacktrace.h和上游不一致,导致iodump用上游内核编译报错
Summary: 头文件include/linux/stacktrace.h和上游不一致,导致iodump用上游内核编译报错
Status: NEW
Alias: None
Product: ANCK 4.19 Dev
Classification: ANCK
Component: debugability (show other bugs) debugability
Version: unspecified
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: xiangzao
QA Contact: shuming
URL:
Whiteboard:
Keywords: FeatureBackport
Depends on:
Blocks:
 
Reported: 2023-07-21 11:36 UTC by wangxiaomeng
Modified: 2023-07-21 14:00 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wangxiaomeng 2023-07-21 11:36:20 UTC
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:
Comment 1 wangxiaomeng 2023-07-21 14:00:16 UTC
x86上报错,arm上没有报错,没有报错原因是arm的/boot/configure-*文件里没有CONFIG_ARCH_STACKWALK=y,就不会进入stacktrace.h里的#ifdef CONFIG_ARCH_STACKWALK分支。