无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 14052|回复: 55
打印 上一主题 下一主题

[讨论] g4d bug回报

[复制链接]
跳转到指定楼层
1#
发表于 2018-1-23 17:18:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
2017-11-30 08:50 v0.4.6a
加入了这个bug
2017-11-18 23:01 v0.4.6a
还没有这个问题

会导致memtest86+5.01.bin无法启动
QEMU就能测试
QEMU下会直接程序报错
实机会重启
附上memtest86+5.01.bin的fba

test.7z

208.62 KB, 下载次数: 14, 下载积分: 无忧币 -2

43#
发表于 2018-6-18 10:55:40 | 只看该作者
不点 发表于 2018-3-27 15:11
你的编译环境是啥?哪个 Linux 发行版?32-bit 环境,还是 64-bit?gcc 版本?

如果 gcc 实在搞不定的 ...


还记得 Zapcc 编译器吗?一个旨在减少编译时间的编译器,现在已正式开源。Zapcc 是基于 LLVM/Clang 的 C++ 编译器,自 2015 年开始,它就一直在致力于让自己成为比 Clang 本身更快的 C++ 编译器。Zapcc 采用激进的缓存策略(aggressive caching)和其他技术来显著加快编译时间,同时作为 GCC 或 Clang 的替代品。


Zapcc 为了做到比其他 C++ 编译器更快,采取的方法是将一些编译器的结构缓存在服务器上,从而大幅度提升编译速度。

去年 Zapcc 发布了 v1.0 里程碑阶段的版本,并于本周宣布开源。

来自 Zapcc 背后的公司 Ceemple 的人写道,他们分享了他们拥有的 Zapcc。由于用户的请求,这个更快的 C++ 编译器已在 LLVM 许可证下开源。他们希望 Zapcc 开源后能加速这款以速度为宗旨的 C++ 编译器的开发。

该项目的代码现在托管在GitHub,而构建过程/环境要求则和编译 Clang 的要求一样。此外,作者表示会努力为 Zapcc 添加一些新的测试基准。
https://github.com/yrnkrn/zapcc
回复

使用道具 举报

42#
发表于 2018-3-27 16:07:23 | 只看该作者
本帖最后由 chenall 于 2018-3-27 16:12 编辑
2011yaya2007777 发表于 2018-3-27 15:47
我是在windows7(32位)下,使用chenall提供的grub4dos_dev编译的。

gcc -v    显示:


这个我回头再测试一下,
目前已知4.6的可以使用,可以先用4.6的

PS: 最早使用的是默认的4.8.4版本,本贴异常,后面修改为4.6之后才可以。


回复

使用道具 举报

41#
发表于 2018-3-27 15:47:59 | 只看该作者
我是在windows7(32位)下,使用chenall提供的grub4dos_dev编译的。

gcc -v    显示:
Traget: i486-Linux-gnu
gcc version 4.8.0 20130127

在.travis.yml ,可不可以修改 gcc-7 为 gcc-4.8.0 ? 难道是只能修改为 gcc-4.8 ?
回复

使用道具 举报

40#
发表于 2018-3-27 15:28:21 | 只看该作者
不点 发表于 2018-3-27 15:11
你的编译环境是啥?哪个 Linux 发行版?32-bit 环境,还是 64-bit?gcc 版本?

如果 gcc 实在搞不定的 ...

难怪,我之前测试使用clang编译失败。

另外可能grub4dos里面有使用了特定版本gcc的一些hack之类的代码,所以不同gcc版本会有差异。
回复

使用道具 举报

39#
发表于 2018-3-27 15:26:52 | 只看该作者
2011yaya2007777 发表于 2018-3-27 09:35
又有一个奇怪现象:
issues #168反映
版本2017-12-23正常。(但是,这个帖子反馈的问题依然存在。)

源码根目录下有一个 .travis.yml

修改里面的内容(共有三个地方)

gcc-7 修改为 gcc-4.6

更新之后就会使用gcc-4.6版本编译。
回复

使用道具 举报

38#
发表于 2018-3-27 15:22:47 | 只看该作者
2011yaya2007777 发表于 2018-3-27 09:35
又有一个奇怪现象:
issues #168反映
版本2017-12-23正常。(但是,这个帖子反馈的问题依然存在。)

你编译的版本使用的编译环境是什么?
gcc -v
回复

使用道具 举报

37#
发表于 2018-3-27 15:11:44 | 只看该作者
2011yaya2007777 发表于 2018-3-27 09:35
又有一个奇怪现象:
issues #168反映
版本2017-12-23正常。(但是,这个帖子反馈的问题依然存在。)

你的编译环境是啥?哪个 Linux 发行版?32-bit 环境,还是 64-bit?gcc 版本?

如果 gcc 实在搞不定的话,转到 clang 是一个不错的选项。clang 不支持某些 asm 指令,因此,某些 asm 代码需要手动改成

.byte .....
.byte .....

也就是说,不让编译器编译,而是直接写机器指令。


回复

使用道具 举报

36#
发表于 2018-3-27 09:35:00 | 只看该作者
本帖最后由 2011yaya2007777 于 2018-3-27 10:12 编辑
已发布,另外编译环修改成gcc-7了

又有一个奇怪现象:
issues #168反映
版本2017-12-23正常。(但是,这个帖子反馈的问题依然存在。)
自动编译改成使用gcc-4.6版本后,版本2018-02-27正常。(这个帖子反馈的问题修正。)
编译环修改成gcc-7后,版本2018-03-03错误,版本2018-03-15错误,版本2018-03-24错误,版本2018-03-26错误。(这个帖子反馈的问题修正。)
然而我编译的版本正常。
附测试菜单。




test2.rar

8.8 KB, 下载次数: 0, 下载积分: 无忧币 -2

grub4dos-0.4.6a-2018-03-26.7z.rar

289.31 KB, 下载次数: 0, 下载积分: 无忧币 -2

回复

使用道具 举报

35#
 楼主| 发表于 2018-3-11 20:09:38 | 只看该作者
gnuxwy 发表于 2018-3-6 19:06
为什么grub2的菜单里,能直接用memtest86+.bin 这样的兵程序,
而g4d中却要映射一个memtest86.img成软盘 ...

没问题啊
  1. title memtest86+
  2. find --set-root /memtest86+5.01.bin.lzma
  3. kernel /memtest86+5.01.bin.lzma
复制代码

memtest86+有内核版……
至于最后
那也得有人移植memtest86+过来啊
我觉得不如弄一发DOS for G4D
回复

使用道具 举报

34#
发表于 2018-3-6 19:06:06 | 只看该作者
不点 发表于 2018-3-2 18:38
在百度搜 “grub4dos memtest86” 找到的第一个网页就是:

http://www.rmprepusb.com/tutorials/memte ...

为什么grub2的菜单里,能直接用memtest86+.bin 这样的兵程序,
而g4d中却要映射一个memtest86.img成软盘,氏不氏那个软盘里氏dos,实际的氏memtest86.exe。
g4d以前听大师讲,也能直接支持运行程序的,那为什么不直接编译一个g4d环境可直接运行的memtest86.g4d
回复

使用道具 举报

33#
发表于 2018-3-3 14:01:22 | 只看该作者
2011yaya2007777 发表于 2018-3-3 12:09
管网又不能自动编译发布了!

已发布,另外编译环修改成gcc-7了
回复

使用道具 举报

32#
发表于 2018-3-3 13:24:58 | 只看该作者
我检查一下
回复

使用道具 举报

31#
发表于 2018-3-3 12:09:37 | 只看该作者
管网又不能自动编译发布了!
回复

使用道具 举报

30#
发表于 2018-3-2 18:38:41 | 只看该作者
gnuxwy 发表于 2018-3-2 13:05
屮从未在g4d的命令行环境执行过memtest。
若要测试的话氏直接在命令行执行系列命令,还氏修改menu.lst加入 ...

在百度搜 “grub4dos memtest86” 找到的第一个网页就是:

http://www.rmprepusb.com/tutorials/memtest86

它里面的菜单如下:

  1. title memtest86+ v4.10
  2. find --set-root /memtest.img
  3. map /memtest.img (fd0)
  4. map --hook
  5. chainloader (fd0)+1
  6. rootnoverify (fd0)
  7. map --floppies=1
复制代码
回复

使用道具 举报

29#
发表于 2018-3-2 13:05:59 | 只看该作者
屮从未在g4d的命令行环境执行过memtest。
若要测试的话氏直接在命令行执行系列命令,还氏修改menu.lst加入多行命令。
grub4dos的范例菜单没有提供运行memtest86的命令,屮看了下grub2的菜单条,居然这么多条命令。

menuentry 'Memory test (memtest86+, serial console 115200)' {
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos8'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  f30e6b8f-1999-41a1-98f9-256c644a0949
        else
          search --no-floppy --fs-uuid --set=root f30e6b8f-1999-41a1-98f9-256c644a0949
        fi
        linux16        /boot/memtest86+.bin console=ttyS0,115200n8
}

点评

在百度搜 “grub4dos memtest86” 找到的第一个网页就是: http://www.rmprepusb.com/tutorials/memtest86 它里面的菜单如下:  详情 回复 发表于 2018-3-2 18:38
回复

使用道具 举报

28#
发表于 2018-3-2 09:41:11 | 只看该作者
测试memtest86+5.01.bin正常.
回复

使用道具 举报

27#
发表于 2018-3-1 15:03:44 | 只看该作者
这个是用GCC-7编译的,大家可以先测测看有没有其它问题。

没有什么问题的话到时再把编译环境修改为gcc-7版本

grub4dos-0.4.6a-2018-03-01.7z

509.05 KB, 下载次数: 13, 下载积分: 无忧币 -2

回复

使用道具 举报

26#
发表于 2018-3-1 13:11:43 | 只看该作者
gnuxwy 发表于 2018-3-1 12:57
如果最新版的gcc试过编译g4d仍然有问题,应该向gcc开发团队汇报bug,这也氏对gcc开发工作的支持。
大家都 ...

bug 难以描述。定位 bug 很不容易。

先用 “试验” 的办法,看看最新版是否解决了。如果最新版没问题,那就 OK 了。

如果最新版也有问题,那就难了。有可能最终只能转向 clang。

还有一个办法,就是,永远只使用某个版本的 gcc 来编译 grub4dos。

恕我直言,我怀疑 gcc 里面混有间谍搞破坏。若干年前我都开始怀疑了。
回复

使用道具 举报

25#
发表于 2018-3-1 12:57:22 | 只看该作者
如果最新版的gcc试过编译g4d仍然有问题,应该向gcc开发团队汇报bug,这也氏对gcc开发工作的支持。
大家都想用bug更少的编译噐,但只有汇报bug才有可能让开发团队解决问题啊。

点评

bug 难以描述。定位 bug 很不容易。 先用 “试验” 的办法,看看最新版是否解决了。如果最新版没问题,那就 OK 了。 如果最新版也有问题,那就难了。有可能最终只能转向 clang。 还有一个办法,就是,永远  详情 回复 发表于 2018-3-1 13:11
回复

使用道具 举报

24#
发表于 2018-3-1 12:56:21 | 只看该作者
chenall 发表于 2018-3-1 10:22
我测试了几个版本4.6-5.0,目前只有4.6的可以正常启动,其它版本都会异常.

我想请教 chenall 有关创建 cling 改进项目的问题。

cling 已经有 79 个 fork 了,我也不可能一个一个去检验 fork 以后的这 79 个版本是否有改进。

不过我也担心,假如我做了别人早就做好的工作,那是浪费。

我对 git 的东西也不是很熟,要学知识,而我确实懒惰,尤其到了我这岁数,更不想折腾。

目前我是有些纠结。

我看到 chenall 也很忙,因此,也不好意思总是给 chenall 添麻烦。

不过,如果 chenall 碰巧也对 cling 有兴趣的话,或许这不算太麻烦。

直说了吧,chenall 有没有可能开辟这个 cling 改造项目?

不需要经常更新,只要偶尔有空的时候,更新一下便可。我可以把补丁发在论坛上。

chenall 愿意投入时间进行开发,那最好了。如果不想投入开发,只要简单维护一下便可。

还有没有其他人愿意参加?都可以一起搞。

回复

使用道具 举报

23#
发表于 2018-3-1 11:42:42 | 只看该作者
chenall 发表于 2018-3-1 10:22
我测试了几个版本4.6-5.0,目前只有4.6的可以正常启动,其它版本都会异常.

最新版的 gcc 是 7.3,有机会可以试试。
回复

使用道具 举报

22#
发表于 2018-3-1 10:22:37 | 只看该作者
本帖最后由 chenall 于 2018-3-1 10:34 编辑

我测试了几个版本4.6-5.0,目前只有4.6的可以正常启动,其它版本都会异常.

点评

我想请教 chenall 有关创建 cling 改进项目的问题。 cling 已经有 79 个 fork 了,我也不可能一个一个去检验 fork 以后的这 79 个版本是否有改进。 不过我也担心,假如我做了别人早就做好的工作,那是浪费。  详情 回复 发表于 2018-3-1 12:56
最新版的 gcc 是 7.3,有机会可以试试。  详情 回复 发表于 2018-3-1 11:42
回复

使用道具 举报

21#
发表于 2018-3-1 09:07:40 | 只看该作者
本帖最后由 不点 于 2018-3-1 09:17 编辑
chenall 发表于 2018-3-1 00:53
我试着用clang编译,检测报错

configure: error: GRUB requires GAS .code16 addr32 support


搜到一些知识或方法,说明如下:

We disabled clang's integrated assembler (and rely on gas for linking)

                Reason:
                           no .code16 support
                           inline assembly handling

  1. arch/x86/boot/Makefile
  2. +# For clang we need to rely on no-integrated-as for .code16
  3. +ifeq ($(COMPILER),clang)
  4. +KBUILD_CFLAGS  +=  -Wno-unused-value -Wno-unused-parameter \
  5. +                    -mno-sse   $(call cc-option,-no-integrated-as,)
  6. +endif
复制代码


这不是针对 grub,但他的方法可以借鉴。

至于说 data32 和 addr32,这好办,它们只是指令修饰符(指令前缀),分别改成

.byte   0x66
.byte   0x67

即可。


【补充】在 asm 方面,可能困难比较多,看来目前还不能用 clang 来编译。

暂时放弃 clang 吧,看看 gcc 最新版行不行。
回复

使用道具 举报

20#
发表于 2018-3-1 00:53:42 | 只看该作者
我试着用clang编译,检测报错

configure: error: GRUB requires GAS .code16 addr32 support

点评

搜到一些知识或方法,说明如下: We disabled clang's integrated assembler (and rely on gas for linking) Reason: no .code16 support  详情 回复 发表于 2018-3-1 09:07
回复

使用道具 举报

19#
发表于 2018-2-28 22:28:14 | 只看该作者
求道者 发表于 2018-2-28 19:48
是GCC的BUG吗?
他们会修吗?

他们修不修,似乎与我们关系不大。我估计没什么人去报告 bug,就算有人想去报告,可能也不知道该怎么报告。

我建议 “试试”,就是说,我们以 “试验” 的方式,来判断哪个版本有问题。那些经过试验判断 “有错误” 的版本,肯定不好,就被淘汰掉。只留下 “没有暴露出问题” 的版本。

所以,我觉得应该试试 gcc 的最新版,以及 clang 的最新版。

有鉴于 gcc 总在出问题,因此我建议各位考虑逐步采纳 clang。
回复

使用道具 举报

18#
 楼主| 发表于 2018-2-28 19:48:56 | 只看该作者
chenall 发表于 2018-2-28 11:54
有问题的编译环境也是gcc-4.8 版本号是gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4

现在的编译环境 ...

是GCC的BUG吗?
他们会修吗?

点评

他们修不修,似乎与我们关系不大。我估计没什么人去报告 bug,就算有人想去报告,可能也不知道该怎么报告。 我建议 “试试”,就是说,我们以 “试验” 的方式,来判断哪个版本有问题。那些经过试验判断 “有错误  详情 回复 发表于 2018-2-28 22:28
回复

使用道具 举报

17#
发表于 2018-2-28 11:54:20 | 只看该作者
2011yaya2007777 发表于 2018-2-28 09:44
grub4dos_dev内部是: gcc-4.8,git-1.6,binutils-2.22,libssl-0.9.8,linux-3.0.1_api_headers。


有问题的编译环境也是gcc-4.8 版本号是gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4

现在的编译环境使用的是https://travis-ci.org提供的.

点评

是GCC的BUG吗? 他们会修吗?  详情 回复 发表于 2018-2-28 19:48
回复

使用道具 举报

16#
发表于 2018-2-28 09:44:19 | 只看该作者
grub4dos_dev内部是: gcc-4.8,git-1.6,binutils-2.22,libssl-0.9.8,linux-3.0.1_api_headers。
回复

使用道具 举报

15#
 楼主| 发表于 2018-2-27 21:45:24 | 只看该作者
新版gcc的锅?
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-8 13:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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