免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9565 | 回复: 9

[NetBSD] Linux下编译NetBSD源码试验 [复制链接]

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2006-04-06 17:41 |显示全部楼层
在slackware10.1下面编译NetBSD release
发现,NetBSD的结构实在是太不可思议了, orz
没有看见guide上说可以在Linux上编译,不过还是成功了。

前提:
Linux带有native 的编译器gcc ,但是版本不能是4.x,因为交叉编译gnu里面的gcc时,会出现lvalue的问题。当然,有能力的朋友可以修改gcc源码来避免这个问题。我试了试,找不出原因

方法:
1 在ftp.netbsd.org 下载syssrc.tgz sharesrc.tgz src.tgz gnusrc.tgz四个代码包
2 如果原有Linux系统下有/usr/sys的话,需要自己备份
3 解压上面四个包,放在/usr/src下,我的方法是:mv syssrc.tgz / ; tar -zxf syssrc.tgz ; rm syssrc.tgz (当然比较笨)
4 确定build.sh在/usr/src目录下 (或许需要chmod +x build.sh,最新的NetBSD源码发布不需要)
5 mkdir /usr/obj
6 cd /usr/src   
7 ./build.sh -m i386 tools     编译工具,-m指定平台为i386
8 ./build.sh -u -m i386 kernel=GENERIC  编译内核, -u 告诉build.sh脚本已经有了tools,不需要upgrade
9 ./build.sh -u -m i386 kernel=GENERIC releasekernel=GENERIC release 编译userland 发布版本

8,9步是包含关系,如果仅编译内核,就可以不要第9部步,如果需要连userland一起编译,则可以跳过第8步。
最新的netbsd源代码的build.sh还可以制作iso镜像,前提是Linux系统中装有mkiso软件包。(似乎是叫这个名字)
./build.sh -u -m i386 kernel=GENERIC releasekernel=GENERIC release iso (就像上面的8,9一样,是一些操作的集合)
另外,还可以制作交叉编译器(不少做嵌入式的朋友觉得这个很麻烦)
./build.sh -m evbarm tools    这样可以得到一个arm的交叉编译器
./build.sh -m sparc64 tools   这样可以得到一个sparc64的交叉编译器
这样就得到了Linux平台下的交叉编译器。

同时pkgsrc也是跨OS的机制。NetBSD的结构,orz

[ 本帖最后由 gvim 于 2006-4-6 19:23 编辑 ]

论坛徽章:
0
发表于 2006-04-06 19:12 |显示全部楼层
原帖由 gvim 于 2006-4-6 17:41 发表
但是版本不能是4.x,因为交叉编译gnu里面的gcc时,会出现lvalue的问题 ...


cast-as-lvalue?

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2006-04-06 19:28 |显示全部楼层
原帖由 雨丝风片 于 2006-4-6 19:12 发表


cast-as-lvalue?


是的,依编译错误来看,出问题的语句是个调用。
readrtx 里面的,形式是这样的 xxx(&yy, (PTR)readrtx(infile)); PTR是void * ,xxx是个函数,yy是个对象
我搞了临时变量出来还是不行,同时也没有确定到底是哪里产生的lvalue问题

[ 本帖最后由 gvim 于 2006-4-6 19:30 编辑 ]

论坛徽章:
0
发表于 2006-04-06 19:29 |显示全部楼层
原帖由 gvim 于 2006-4-6 19:28 发表


是的,依编译错误来看,出问题的语句是个调用。
readrtx 里面的,形式是这样的 xxx(&yy, (PTR)readrtx(infile)); PTR是void *
我搞了临时变量出来还是不行,同时也没有确定到底是哪里产生的lvalue问题 ...


冤有头,债有主,慢慢找。。。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2006-04-06 19:31 |显示全部楼层
原帖由 雨丝风片 于 2006-4-6 19:29 发表


冤有头,债有主,慢慢找。。。


不找了,和BSD无关,反正换成gcc3.3可以解决。同时也说明NetBSD代码比GNU的代码健壮。

论坛徽章:
0
发表于 2006-04-06 19:34 |显示全部楼层
原帖由 gvim 于 2006-4-6 19:31 发表
同时也说明NetBSD代码比GNU的代码健壮。



来张健壮的合影吧:
A group photo of some of the netbsd team at BSDCAN.
netbsd.jpg

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2006-04-06 19:42 |显示全部楼层
左边第一个。。。。orz

论坛徽章:
0
发表于 2007-05-30 17:25 |显示全部楼层
刚才在linux上编译NetBSD,现在顶一下这篇文章

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2007-05-30 18:33 |显示全部楼层
如此好文怎能不顶!

斑竹呢?赶快加精华啊。

^_^.

论坛徽章:
0
发表于 2007-05-30 22:15 |显示全部楼层
原帖由 雨丝风片 于 2006-4-6 19:34 发表



来张健壮的合影吧:
A group photo of some of the netbsd team at BSDCAN.

都很怪异的让人Orz啊...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP