编译驱动模块时,出现“stack protector enabled but no compiler support”[解决办法]
写驱动程序,编译驱动模块时,出现
“make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
/usr /src/linux-headers-2.6.32-5-common/arch/x86 /Makefile:81: stack protector enabled but no compiler support” - stack protector 启用,但编译器不支持
解决方法1: (除去栈保护支持)
1. 修改 /usr/src/linux-header-xxx/目录下的文件.config,找到CONFIG_CC_STACKPROTECTOR,注释掉
2. 同样的办法修改/usr/src/linux-header-xxx/include/config/auto.conf
解决方法2: (保留栈保护功能)
在/usr/src/linux-headers-2.6.32-5-common/arch/x86/Makefile中有
- ifdef CONFIG_CC_STACKPROTECTOR
- cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
- ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(biarch)),y)
- stackp-y := -fstack-protector
- KBUILD_CFLAGS += $(stackp-y)
- else
- $(warning stack protector enabled but no compiler support)
- endif
- endif
判 断编译器是否支持stack-protector的是/usr/src/linux-headers-2.6.32-5-common/scripts /gcc-x86_$(BITS)-has-stack-protector.sh文件(针对32/64位机器,有不同的文件)
点击(此处)折叠或打开
- #!/bin/sh
- echo "" | $* -S -xc -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs"
- if [ "$?" -eq "0" ] ; then
- echo y
- else
- echo n
- fi
这个文件中判断gcc是否支持fstack-protector的方法是,查看""生成的支持栈保护的汇编码中是否含有"%gs"。大家可以通过实验来观察区别,而这个文件中的判断与实际的相反。故将这两个文件中的y和n互换位置即可。
实验: Debian6.0.5/Linux 2.6.32-5-amd64/gcc 4.4.5
源代码: (test_stack_protector.c)
int foo(void) { char X[200]; return 3; }
编译结果:
(1) gcc -S -fstack-protector -o stack test_stack_protector.c
stack:
------------------------------------------------------------
- .file"test_stack_protector.c"
- .text
- .globl foo
- .typefoo, @function
- foo:
- pushl %ebp
- movl %esp, %ebp
- subl $216, %esp
- movl %gs:20, %eax
- movl %eax, -12(%ebp)
- xorl %eax, %eax
- movl $3, %eax
- movl -12(%ebp), %edx
- xorl %gs:20, %edx
- je .L3
- call __stack_chk_fail
- .L3:
- leave
- ret
- .sizefoo, .-foo
- .ident"GCC: (Debian 4.4.5-8) 4.4.5"
- .section.note.GNU-stack,"",@progbits
(2) gcc -S -fno-stack-protector -o nostack test_stack_protector.c
nostack:
------------------------------------------------------------
- .file"test_stack_protector.c"
- .text
- .globl foo
- .typefoo, @function
- foo:
- pushl %ebp
- movl %esp, %ebp
- subl $208, %esp
- movl $3, %eax
- leave
- ret
- .sizefoo, .-foo
- .ident"GCC: (Debian 4.4.5-8) 4.4.5"
- .section.note.GNU-stack,"",@progbits
转载于:https://www.cnblogs.com/oracleloyal/p/5311516.html
编译驱动模块时,出现“stack protector enabled but no compiler support”[解决办法]相关推荐
- 安装kilo版本openstack-dashboard时出现的python compress command not found错误解决办法
2019独角兽企业重金招聘Python工程师标准>>> 安装openstack-dashboard时出现的python compress command not found错误解决办 ...
- Keil5使用AC6编译后,生成bin文件变为生成文件夹的解决办法
Keil5使用AC6编译后,生成bin文件变为生成文件夹的解决办法 KEIL AC5到AC6需要注意的地方 从AC5移植到AC6 解决流程 关键步骤 最近同事咨询改用keil的最新版本编译器编译原来的 ...
- android启动画面白屏,Android app启动时黑屏或者白屏的原因及解决办法
1.产生原因 其实显示黑屏或者白屏实属正常,这是因为还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景. 示例: 2.解决办法 通过设置设置Style (1)设置背 ...
- 下载logisim时显示“系统找不到指定路径”的解决办法!!!!
下载logisim时显示"系统找不到指定路径"的解决办法!!!! 最后全部搞完的时候百度到了这个: 因为我的电脑之前胡乱删了一些东西而且Java没卸载,总之就很乱,但是我没卸载干净 ...
- docx转doc时,防止公式被转成图片的解决办法
[转载]docx转doc时,防止公式被转成图片的解决办法 编辑社回复需要doc(Word 97-2003)格式的文档,可是将docx(Word 2007+)另存为doc格式时,发现公式被转成了图片.其 ...
- 安装TIA博途V14 SP1后,打开软件时系统提示出现一个并行的错误_解决办法
安装TIA博途V14 SP1后,打开软件时系统提示出现一个并行的错误_解决办法 如下图所示,已经将 TIA Portal 从 V14 升级到 V14 SP1.成功完成升级而没有任何错误后,再次打开 T ...
- Outlook启动时提示“找不到文件Outlook.pst文件”解决办法
Outlook启动时提示"找不到文件Outlook.pst文件"解决办法: 解决方法: 1. 开始 –> 运行 –> cmd 2. 在DOS下,用CD 切换到 ...
- PyCharm激活时遇到This license K71U8DBPNE has been cancelled的解决办法
PyCharm激活时遇到This license K71U8DBPNE has been cancelled的解决办法 PyCharm在激活之前如果没有修改hosts文件,则在注册激活码时会弹出如下窗 ...
- Qt删除文件夹时父文件夹一并删除的原因与解决办法
Qt删除文件夹及子文件夹全部文件时父文件夹一并删除的原因与解决办法 初学Qt文件操作,总会先去查阅各种资料,参考各种代码然后一点点地去调试. 我在编写"删除文件夹及子目录与所有文件" ...
最新文章
- linux c 内核 ISO C90 forbids mixed declarations and code 警告
- j详细说明ava于clone办法
- 机器学习应用方向(三)~可解释机器学习Explainable ML/Explainable AI
- python messagebox一定要指定父窗体吗,为什么要使用的MessageBox.show一个所有者窗口?...
- iOS Apps核心对象
- Vue项目开发目录结构和引用调用关系
- PMP项目管理认证体系
- WeixinJSBridge API使用实例
- ajax 详解(GET,POST方式传输以其封装)
- 阅读underscore源码笔记
- Android ActivityManager类
- office之转置EXCEL表格
- 成功之路散文连载之笨人论
- HTML5作品展示摄影网站网页模板源码下载
- 用天文方法计算二十四节气
- UVALIVE 2678
- Exploratory Social Network Analysis with Pajek(第三版)2-1
- 疲惫的 618,很难再激起年轻人的多巴胺?
- pandas 数据聚合与分组运算
- 制作视频弹幕:DanmakuFlameMaster