linux-0.11 GCC4.3下可编译运行的源码
来源:互联网 发布:jboss安装与配置linux 编辑:程序博客网 时间:2024/06/08 22:01
刚修复了集成盘在gcc 4.3下无法工作的问题。
启动是只是显示“Loading System ...”
1. 原因
gcc 4.3对内存拷贝优化时出错,当然,glibc里头的memcpy是没有问题的,因为glibc中的memcpy实现方式不一样,但是linux-0.11里头的memcpy有问题。类似的 *p1=*p2 操作在gcc 4.3中会自动优化,而在4.3之前的版本会自动调用memcpy,所以这里我们把类似的 *p1=*p2 操作修改为 memcpy,但是编译时不能用优化选项,否则gcc 4.3还是会对memcpy优化,直接把代码嵌套到使用memcpy的代码,而不会调用,这种优化的结果并不正确,所以就导致了问题。
2. 修复办法
把kernel/blk_drv/ramdisk.c中的如下行:
*((struct d_super_block *) &s) = *((struct d_super_block *) bh->b_data);
修改为:
memcpy(((struct d_super_block *) &s), /
((struct d_super_block *) bh->b_data), /
sizeof(struct d_super_block));
另外编译时,去掉-O1选项,即确保kernel/blk_drv/Makefile中的CFLAGS没有-O1选项
3. 修改后的源代码
http://yming0221.download.csdn.net/
- linux-0.11 GCC4.3下可编译运行的源码
- linux下编译gcc4
- linux(Centos)下编译安装gcc4.8.2
- gcc4.9.2源码编译
- linux下编译运行Apache源码
- 创建Linux下可运行的超小型ELF可执行文件(3)
- 利用winelib编译一个可在linux下运行的程序
- vs2010和gcc4.4.7、gcc4.7.0下C++类模板的编译方法
- linux 编译安装GCC4.9.3
- Mingw下gcc4.5.0编译新版ffmpeg的问题
- fft源码,VS2010上可编译运行
- arm-linux-gcc4.3.2编译kernel 2.6.24成功,gcc4.3 内核
- android手机编译可运行的linux程序
- ubuntu12.10下用gcc4.7.2编译4.6.3,
- Linux下用Eclipse编译、安装、运行、调试PostgreSQL源码
- 完整版linux下android源码下载、编译、模拟器启动运行
- 完整版linux下android源码下载、编译、模拟器启动运行
- 比特币源码linux下环境配置编译运行bitcoin
- Struts1的国际化处理(汇总整理)
- NS-仿真实验--FTP
- Linux 可执行程序打压缩
- 线程间数据通讯与更新
- 全面优化ASP应用程序的性能 - asp.net 教程
- linux-0.11 GCC4.3下可编译运行的源码
- android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6
- 剖析inittab文件
- JAVA获取绝对路径的问题
- 转:一种经典的网络游戏服务器架构
- 枚举类小结
- springMVC 配置 说明
- 指定的服务并未以已安装的服务存在,Unable to open the service"Tomcat6
- Session失效的处理办法