LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1083|回复: 6

clfs编译grub-0.97的一个问题

[复制链接]
发表于 2009-11-15 13:42:17 | 显示全部楼层 |阅读模式
宿主机debian x86_64,目标机是x86,做到这一步:
http://cross-lfs.org/view/svn/x86/boot/grub-build.html
make出错:

  1. main.c:143: warning: the address of 'config_file' will always evaluate as 'true'
  2. if i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I..  -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 -DSUPPORT_HERCULES=1 -DSUPPORT_SERIAL=1  -I../stage2 -I../stage1 -I../lib -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef -O2 -g -MT asmstub.o -MD -MP -MF ".deps/asmstub.Tpo" -c -o asmstub.o asmstub.c; \
  3.         then mv -f ".deps/asmstub.Tpo" ".deps/asmstub.Po"; else rm -f ".deps/asmstub.Tpo"; exit 1; fi
  4. asmstub.c: In function 'grub_stage2':
  5. asmstub.c:150: error: 'MAP_32BIT' undeclared (first use in this function)
  6. asmstub.c:150: error: (Each undeclared identifier is reported only once
  7. asmstub.c:150: error: for each function it appears in.)
  8. make[2]: *** [asmstub.o] Error 1
  9. make[2]: Leaving directory `/mnt/clfs/sources/grub-0.97/grub'
  10. make[1]: *** [all-recursive] Error 1
  11. make[1]: Leaving directory `/mnt/clfs/sources/grub-0.97'
  12. make: *** [all] Error 2
复制代码


发现只要不打grub-0.97-use_mmap-1.patch这个patch就能编译通过

  1. GRUB has an issue that can cause it to segfault when you try to configure a drive to utilize GRUB on x86_64 and building machines. The following patch fixes this problem:
复制代码

这句话我看不明白,请教这是干什么用的,我不打这个patch会不会导致以后出错?
发表于 2009-11-15 14:35:13 | 显示全部楼层
您交叉编译工具链有问题。
其中,内核头文件 有最大嫌疑,再一个是头文件搜索路径问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-16 11:09:38 | 显示全部楼层
Post by 聚焦深空;2046074
您交叉编译工具链有问题。
其中,内核头文件 有最大嫌疑,再一个是头文件搜索路径问题。


谢谢提示,后面编译eglibc也出问题了,没记下错误信息...
这周作业好多,等周末再折腾它去
回复 支持 反对

使用道具 举报

发表于 2010-7-20 14:07:23 | 显示全部楼层
我遇到相同的问题.请问要重新编译工具链 ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-20 17:14:24 | 显示全部楼层
Post by jiannma;2104271
我遇到相同的问题.请问要重新编译工具链 ?


哇,我发的老贴被挖出来了

很惭愧,我后来没有做下去
x86的toolchain也没有再做过,倒是一直在做arm,不过arm上没机会用grub了
回复 支持 反对

使用道具 举报

发表于 2010-7-20 20:35:33 | 显示全部楼层
asmstub.c:150: error: [color="Red"]'MAP_32BIT' undeclared (first use in this function)
MAP_32BIT 是 linux 内核头文件 针对 x86 提供的一个宏,所以才有前面判断。

如果排除前面问题,可以参考 http://comments.gmane.org/gmane.linux.lfs.clfs.support/2027 建议,用 http://svn.cross-lfs.org/svn/repos/patches/grub/ 提供的新补丁。

另,grub2 已成熟可用,麻烦会少很多。
回复 支持 反对

使用道具 举报

发表于 2010-7-22 16:50:31 | 显示全部楼层
Post by stesen;2104304
哇,我发的老贴被挖出来了

很惭愧,我后来没有做下去
x86的toolchain也没有再做过,倒是一直在做arm,不过arm上没机会用grub了



呵呵 Google 搜索到 您的帖子啊   
这个问题我搜索了半天,也没搞明白是哪里出错啊?

我前面按照手册做的啊,工具链测试都正常了 ....

附件为grub编译出错截图....哪位 DX能帮忙看下?谢谢...

另外:我用的是 LFS-livecd-x86-6.2-3.iso,该版本是不是有点老了?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表