2. 解决 VCS 运行问题
随便找几个文件编译下试试。
$ vcs -full64 -f file.list
/usr/bin/ld: /home/rockstar/synopsys/vcs/O-2018.09-SP2/linux64/lib/vcs_save_restore_new.o: in function `SNPSee_907e539fb4bc8f7101eac356af4ce4ed':
../../OBJ/lib/saverestoreobj/obj-linux64/kernel.o.text+0xc41): undefined reference to `pthread_yield'
collect2: error: ld returned 1 exit status
make: *** [Makefile:109: product_timestamp] Error 1
Make exited with status 2
可以看到链接的时候报错:undefined reference to `pthread_yield'。
这个是线程调度中的一个函数。用 sched_yield。
$ cd $VCS_HOME/linux64/lib/
$ mv vcs_save_restore_new.o vcs_save_restore_new.o.bak
$ objcopy --redefine-sym pthread_yield=sched_yield vcs_save_restore_new.o.bak vcs_save_restore_new.o
然后问题就解决了。