OpenXiangShan / XiangShan-doc

Documentation for XiangShan
https://xiangshan-doc.readthedocs.io
Creative Commons Attribution 4.0 International
338 stars 130 forks source link

香山工具链的分支切换问题 #15

Closed cuipingzhang closed 2 years ago

cuipingzhang commented 2 years ago

工具链文档中提到的 riscv-gcc-experimental-bkp 分支和括号中的fbfa8d9ad496a2d69a38be2c2c3c0dc0956ffb9e是一个吗 ,下载该分支之后还需要再切换到该id下吗

Lemover commented 2 years ago

您可以通过命令: git log,查看当前分支的commit id,然后检查是否一样 通过命令:git checkout commitID,切换到对应的commit

这个是我常看的git教程: http://git-scm.com/book/zh/v2

ljwljwljwljw commented 2 years ago

工具链文档中提到的 riscv-gcc-experimental-bkp 分支和括号中的fbfa8d9ad496a2d69a38be2c2c3c0dc0956ffb9e是一个吗 ,下载该分支之后还需要再切换到该id下吗

括号中的commit id意思是在riscv-gcc-experimental-bkp中的该commit id我们这边测试过,加入commit id是为了防止upstream分支更新了而我们的文档没有更新,留一个commit id做保底。

如果为了保险起见您可以切换到我们指定的commit id;如果您需要最新的upsteam特性,使用upstream最新的commit就可以。

cuipingzhang commented 2 years ago

工具链文档中提到的 riscv-gcc-experimental-bkp 分支和括号中的fbfa8d9ad496a2d69a38be2c2c3c0dc0956ffb9e是一个吗 ,下载该分支之后还需要再切换到该id下吗

括号中的commit id意思是在riscv-gcc-experimental-bkp中的该commit id我们这边测试过,加入commit id是为了防止upstream分支更新了而我们的文档没有更新,留一个commit id做保底。

如果为了保险起见您可以切换到我们指定的commit id;如果您需要最新的upsteam特性,使用upstream最新的commit就可以。

是说我下载了该分支riscv-gcc-experimental-bkp下有很多commit id吗,还是就这一个id,因为我是再window上下载的zip,没法使用git log确认id,使用指令一直报错atal: Remote branch riscv-gcc-experimental-bkp not found in upstream origin,我的指令是git clone https://github.com/pz9115/riscv-gcc.git -b riscv-gcc-experimental-bkp,这条指令有问题吗

cuipingzhang commented 2 years ago

文档中提到的是riscv-gcc-experimental-bkp分支,但是我在网上看到的是这两个 imageriscv-gcc-experimentalriscv-gcc-experiment-bkp我应该下那么分支

ljwljwljwljw commented 2 years ago

riscv-gcc-experiment-bkp分支。

cuipingzhang commented 2 years ago

riscv-gcc-experiment-bkp分支。 下来了这个分支,还需要checkout commit id吗,还是这个分支就行,不用管commit id了

Lemover commented 2 years ago

工具链文档中提到的 riscv-gcc-experimental-bkp 分支和括号中的fbfa8d9ad496a2d69a38be2c2c3c0dc0956ffb9e是一个吗 ,下载该分支之后还需要再切换到该id下吗

括号中的commit id意思是在riscv-gcc-experimental-bkp中的该commit id我们这边测试过,加入commit id是为了防止upstream分支更新了而我们的文档没有更新,留一个commit id做保底。 如果为了保险起见您可以切换到我们指定的commit id;如果您需要最新的upsteam特性,使用upstream最新的commit就可以。

是说我下载了该分支riscv-gcc-experimental-bkp下有很多commit id吗,还是就这一个id,因为我是再window上下载的zip,没法使用git log确认id,使用指令一直报错atal: Remote branch riscv-gcc-experimental-bkp not found in upstream origin,我的指令是git clone https://github.com/pz9115/riscv-gcc.git -b riscv-gcc-experimental-bkp,这条指令有问题吗

从github上直接下载的压缩包,只包含代码,不包含git信息,所以不能进行分支切换,也不能查看git历史记录。所以还是推荐通过git clone来下载代码。命令是没问题的,下载完成之后,可以git checkout fbfa8d9ad切换到需要的commit。

cuipingzhang commented 2 years ago

文档中riscv-binutils-experimental-bkp 分支,网站上是 image 也是用riscv-binutils-experiment-bkp

ljwljwljwljw commented 2 years ago

按文档来,用最新的bkp分支,不用管commit id

cuipingzhang commented 2 years ago

还有我用git clone下载的riscv-gnu-toolchain的好多文件夹都是空的,比如glibc/newlib/qemu/riscv-gdb/riscv-binutils/riscv-dejagnu,我可以单独下载这些文件夹的内容吗,这些也有版本要求吗

ljwljwljwljw commented 2 years ago

还有我用git clone下载的riscv-gnu-toolchain的好多文件夹都是空的,比如glibc/newlib/qemu/riscv-gdb/riscv-binutils/riscv-dejagnu,我可以单独下载这些文件夹的内容吗,这些也有版本要求吗

这些都是用git submodule来维护的,你可以单独下载,也可以直接make,在编译时riscv-gnu-toolchain的脚本会自动检测submodule是否存在,如果不存在则会自动下载。

cuipingzhang commented 2 years ago

我现在的riscv-gnu-toolcain文件夹大小为1.6G,有内容的文件为contrib/glicb/linux-headers/regression/ruasc-binutils/riscv-gcc/riscv-gdb/scripts/test,还有根目录下的一些文件,这个大小正确吗,是不是没下全,感觉有点小呢

cuipingzhang commented 2 years ago

我现在编译时总是编译开始一会后系统就死机然后重启了,我想知道我的riscv-gnu-toolcain文件夹现在总大小是1.6G是不是缺少文件

cuipingzhang commented 2 years ago

编译时报的错误是g++: fatal error: Killed signal terminated program cc1plus 我现在用的是ubuntu64位,gcc的版本是x86_64-linux-gnu-gcc gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 和工具链有关系吗

ljwljwljwljw commented 2 years ago

我在 https://github.com/OpenXiangShan/riscv-gnu-toolchain 提供了一个设置好submodule分支的版本,可以直接用。 对应的文档也更新了,你清空一下浏览器缓存,重新加载文档就可以看到 https://xiangshan-doc.readthedocs.io/zh_CN/latest/compiler/gnu_toolchain


我现在编译时总是编译开始一会后系统就死机然后重启了,我想知道我的riscv-gnu-toolcain文件夹现在总大小是1.6G是不是缺少文件

这个问题怀疑是你的机器配置较小,make时没有限制使用的线程数,直接make -j导致make产生过多的线程从而让机器卡死,可以将线程数设的小一点,比如你的电脑有8核则可以make -j8

cuipingzhang commented 2 years ago

我在 https://github.com/OpenXiangShan/riscv-gnu-toolchain 提供了一个设置好submodule分支的版本,可以直接用。 对应的文档也更新了,你清空一下浏览器缓存,重新加载文档就可以看到 https://xiangshan-doc.readthedocs.io/zh_CN/latest/compiler/gnu_toolchain

我现在编译时总是编译开始一会后系统就死机然后重启了,我想知道我的riscv-gnu-toolcain文件夹现在总大小是1.6G是不是缺少文件

这个问题怀疑是你的机器配置较小,make时没有限制使用的线程数,直接make -j导致make产生过多的线程从而让机器卡死,可以将线程数设的小一点,比如你的电脑有8核则可以make -j8

好的,我按照您说的在试一次,初次涉及Linux编译,后面有问题还要打扰您。谢谢。

cuipingzhang commented 2 years ago

您好,再请教个问题,NEMU依赖QEMU吗,,就是说我用来生成riscv-unknown-linux-gnu-gcc的riscv-gnu-toolcain下的QEMU文件夹可以为空吗

chenguokai commented 2 years ago

QEMU文件夹可以为空吗

可以,不影响使用

cuipingzhang commented 2 years ago

你好,按照您的指导已经编译成功,但是接下的任务遇到新的问题,就是checkpoint的生成中,该“Checkpoint的生成.md文件”文档中采用riscv64-nemu-interpreter的--simpoint-profile来生成用于simpoint的BBV文件, riscv64-nemu-interpreter workload.bin -D /home/user/spec_cpt -w workloadName -C run_spec -b --simpoint-profile --interval 100000000 1.该命令行中workload.bin是可执行文件吗,虽然后缀是bin,应该是类似elf的该执行文件吧 2.如果该可执行文件执行时需要后面跟输入参数,如一个文件,该怎么添加参数,如cpu2006中的某一个测试项,

cuipingzhang commented 2 years ago

这个二进制文件是用OBJCOPY从可执行文件转换来的吗

ljwljwljwljw commented 2 years ago

如果“香山工具链的分支切换问题”已经解决,新问题请重开一个新的Issue,我们在新的Issue中交流,方便他人检索。

你好,按照您的指导已经编译成功,但是接下的任务遇到新的问题,就是checkpoint的生成中,该“Checkpoint的生成.md文件”文档中采用riscv64-nemu-interpreter的--simpoint-profile来生成用于simpoint的BBV文件, riscv64-nemu-interpreter workload.bin -D /home/user/spec_cpt -w workloadName -C run_spec -b --simpoint-profile --interval 100000000 1.该命令行中workload.bin是可执行文件吗,虽然后缀是bin,应该是类似elf的该执行文件吧 2.如果该可执行文件执行时需要后面跟输入参数,如一个文件,该怎么添加参数,如cpu2006中的某一个测试项,

ljwljwljwljw commented 2 years ago

16