在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 258|回复: 2

[求助] ubuntu环境下makefile运行vcs命令报错

[复制链接]
发表于 2024-11-11 22:11:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
环境:ubuntu 16.04

问题现象:
1. 在terminal中使用source command命令,可以正常运行vcs编译。command文件内容如下
    vcs -f filelist.f -timescale=1ns/1ps -full64 +v2k -sverilog -Mupdate +define+DUMP_VPD -debug_all |tee vcs.log

terminal 显示:

g++-4.8  -o ../simv   -Wl,-rpath-link=./ -Wl,-rpath='$ORIGIN'/simv.daidir/ -Wl,-rpath=./simv.daidir/ -Wl,-rpath='$ORIGIN'/simv.daidir//scsim.db.dir  -Wl,--no-as-needed

2. 使用make命令,vcs报错,makefile内容如下

all: filelist com_fsdb #sim verdi

#---------------------------------------------------------------

filelist:
    find ../de ../dv -name "*.v" -o -name "*.sv" > filelist.f

#---------------------------------------------------------------

com_vpd:
    vcs -f filelist.f \
        -timescale=1ns/1ps \
        -full64 +v2k -sverilog -Mupdate +define+DUMP_VPD \
        -debug_all \
        |tee vcs.log

#---------------------------------------------------------------

com_fsdb:
    vcs -f filelist.f \
        -timescale=1ns/1ps \
        -full64 +v2k -sverilog -Mupdate +define+DUMP_FSDB \
        -debug_acc+all -debug_region+cell+encrypt \
        |tee vcs.log

#---------------------------------------------------------------

sim:
    ./simv |tee sim.log

#---------------------------------------------------------------

dve:
    dve -vpd vcdplus.vpd -script dve.tcl &

#---------------------------------------------------------------

verdi:
    verdi -f filelist.f -ssf tb_top.fsdb -play verdi.tcl &

#---------------------------------------------------------------

clean:
    rm -rf csrc DVEfiles novas* *.log simv* *fsdb* ucli.key *.vpd verdiLog

报错内容如下:
g++  -o ../simv   -Wl,-rpath-link=./ -Wl,-rpath='$ORIGIN'/simv.daidir/ -Wl,-rpath=./simv.daidir/ -Wl,-rpath='$ORIGIN'/simv.daidir//scsim.db.dir

lto1: fatal error: bytecode stream generated with LTO version 2.2 instead of the expected 4.1
compilation terminated.
lto-wrapper: fatal error: g++ returned 1 exit status


求助各位大佬,请问原因是什么?如何解决




发表于 2024-11-12 09:07:19 | 显示全部楼层
已经很明显了,调用的g++版本都不一样
你看下你的alias的设置,看看g++是不是被alias到了g++-4.8上面
另外记得做对比实验啊,你这个问题总结起来就是
1. source xx 可以正常跑
2. make 不可以跑

那你首先要做的就是精简你的Makefile,尽可能让你这两次跑的环境一样,你可以做的实验是
1) 不要用source,其实不明白为啥这么喜欢用source,除了你设置环境变量的时候要用一下source,其他情况都不应该用source,因为source会污染你当前shell
你就直接 vcs -f filelist.f -timescale=1ns/1ps -full64 +v2k -sverilog -Mupdate +define+DUMP_VPD -debug_all  跑
2) 确认你调用的真是的g++是哪个版本,这个基本的排查就是alias的设置以及PATH变量。
比如你在Makefile里面可以先echo $PATH,看看这个设定是不是你预期的
发表于 前天 22:17 | 显示全部楼层
因为 gcc 4 是15年前的东西,很久很久很久之前还发现过 vcs 用到了一个gcc4 的bug,导致不能用-full64 gcc5。具体原因是 gcc4那边 64-bit库里有一个 size 的变量不是64-bit 而是32-bit 的 bug....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-24 13:47 , Processed in 0.015518 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表