由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - gcc编译出错,attribute问题?
相关主题
INIT_WORK从Linux kernel 2.6.20后改了?C & C++ mixing question
c ptr question问一个排序的问题
a careercup questionThree C/C++ Programming Questions
c++ 语法size不固定的struct怎么定义呀?
在 linux下有没有可能得到完全的fully static binary[转载] 问一个C++下计时的问题
[合集] 急问一个gcc的问题One network C question
C code参数传递出错可能的原因Another question
如何从vim里直接编译源代码 (转载)how to initialize this struct.
相关话题的讨论汇总
话题: devinit话题: __话题: pci话题: attribute话题: dev
进入Programming版参与讨论
1 (共1页)
d***x
发帖数: 4
1
下载了个pci驱动,编译出错
/src/master.c:62: error: section attribute not allowed for specific_pci_
probe
/src/master.c:62: warning: __cold__ attribute ignored
下面是出错的代码, __devinit 是 include/kernel/init.h里定义的
/* Static function prototypes */
static int m_pci_probe_valid (struct pci_dev *dev,
int __devinit (*specific_pci_probe)(struct pci_dev *dev)) __devinit;
去掉__devinit再编译就没问题,只是对linux不是很熟,不知这样去掉对不对?
m*****e
发帖数: 4193
2
Probably mismatched kernel and driver version.
Check what __devinit does. I *think* it just marks the code in init section
so it can be discarded to save memory, but maybe there is sth else.

【在 d***x 的大作中提到】
: 下载了个pci驱动,编译出错
: /src/master.c:62: error: section attribute not allowed for specific_pci_
: probe
: /src/master.c:62: warning: __cold__ attribute ignored
: 下面是出错的代码, __devinit 是 include/kernel/init.h里定义的
: /* Static function prototypes */
: static int m_pci_probe_valid (struct pci_dev *dev,
: int __devinit (*specific_pci_probe)(struct pci_dev *dev)) __devinit;
: 去掉__devinit再编译就没问题,只是对linux不是很熟,不知这样去掉对不对?

d***x
发帖数: 4
3

section
是的,__devinit 只标识了section
这么说driver里去掉__devinit没问题了?
另外kernel和driver版本冲突会不会在编译后insmod时才会体现出来呢?谢谢
include/linux/init.h
/* Used for HOTPLUG */
#define __devinit __section(.devinit.text) __cold

【在 m*****e 的大作中提到】
: Probably mismatched kernel and driver version.
: Check what __devinit does. I *think* it just marks the code in init section
: so it can be discarded to save memory, but maybe there is sth else.

m*****e
发帖数: 4193
4
I think it's the "__cold" attribute that causes your problem. Maybe it's
something to do with your gcc/binutils version.

【在 d***x 的大作中提到】
:
: section
: 是的,__devinit 只标识了section
: 这么说driver里去掉__devinit没问题了?
: 另外kernel和driver版本冲突会不会在编译后insmod时才会体现出来呢?谢谢
: include/linux/init.h
: /* Used for HOTPLUG */
: #define __devinit __section(.devinit.text) __cold

1 (共1页)
进入Programming版参与讨论
相关主题
how to initialize this struct.在 linux下有没有可能得到完全的fully static binary
菜鸟读C++ STL源程序的疑问[合集] 急问一个gcc的问题
请教一个MS Linked List的问题C code参数传递出错可能的原因
can struct be derived from?如何从vim里直接编译源代码 (转载)
INIT_WORK从Linux kernel 2.6.20后改了?C & C++ mixing question
c ptr question问一个排序的问题
a careercup questionThree C/C++ Programming Questions
c++ 语法size不固定的struct怎么定义呀?
相关话题的讨论汇总
话题: devinit话题: __话题: pci话题: attribute话题: dev