使用 Simplescalar 编译 BBVTracker

问题描述 投票:0回答:1

我在使用 Simplescalar 编译 UCSD univ(http://cseweb.ucsd.edu/~calder/simpoint/simplescalar-bbv.htm)开发的基本块向量(BBV)时遇到了一些问题。 没有 BBV,我成功编译了 simplescalar。

解压BBVtracker后,共有三个文件:修改后的sim-fast.c、bbtracker.h和bbtracker.c。我将所有三个文件复制到 simplesim-3.o 目录,然后在更新 Makefile 后进行 config-pisa & make:

1,将 bbtracker.h 附加到 HDRS,将 bbtracker.c 附加到 SRCS,将 bbv.$(OEXT) 附加到 $OBJS

2、在Makefile末尾添加bbv.o标签。

SRCS =  main.c sim-fast.c sim-safe.c sim-cache.c sim-profile.c \
        sim-eio.c sim-bpred.c sim-cheetah.c sim-outorder.c \
        memory.c regs.c cache.c bpred.c ptrace.c eventq.c \
        resource.c endian.c dlite.c symbol.c eval.c options.c range.c \
        eio.c stats.c endian.c misc.c bbtracker.c \
        target-pisa/pisa.c target-pisa/loader.c target-pisa/syscall.c \
        target-pisa/symbol.c \
        target-alpha/alpha.c target-alpha/loader.c target-alpha/syscall.c \
        target-alpha/symbol.c

HDRS =  syscall.h memory.h regs.h sim.h loader.h cache.h bpred.h ptrace.h \
        eventq.h resource.h endian.h dlite.h symbol.h eval.h bitmap.h \
        eio.h range.h version.h endian.h misc.h bbtracker.h \
        target-pisa/pisa.h target-pisa/pisabig.h target-pisa/pisalittle.h \
        target-pisa/pisa.def target-pisa/ecoff.h \
        target-alpha/alpha.h target-alpha/alpha.def target-alpha/ecoff.h

#
# common objects
#
OBJS =  main.$(OEXT) syscall.$(OEXT) memory.$(OEXT) regs.$(OEXT) \
        loader.$(OEXT) endian.$(OEXT) dlite.$(OEXT) symbol.$(OEXT) \
        eval.$(OEXT) options.$(OEXT) stats.$(OEXT) eio.$(OEXT) \
        range.$(OEXT) misc.$(OEXT) machine.$(OEXT) bbv.$(OEXT)

.c.$(OEXT):                       # I dnot understand this LABEL. 
        $(CC) $(CFLAGS) -c $*.c
bbv.$(OEXT): host.h misc.h machine.h machine.def endian.h version.h dlite.h bbtracker.h
main.$(OEXT): host.h misc.h machine.h machine.def endian.h version.h dlite.h
main.$(OEXT): regs.h memory.h options.h stats.h eval.h loader.h sim.h

运行make后,出现错误:


    make[1]:离开目录`/opt/simplescalar/simplesim-3.0/libexo'
    gcc -o sim-fast `./sysprobe -flags` -DDEBUG -O0 -g -Wall sim-fast.o main.o syscall.o memory.o regs.o loader.o endian.o dlite.o symbol.o eval.o options.o stats.o eio.o range.o Misc.o machine.o bbv.o libexo/libexo.a `./sysprobe -libs` -lm
    gcc:错误:bbv.o:没有这样的文件或目录
    make: *** [sim-fast] 错误 1

显然,bbv.o 没有生成。看来我添加 bbv.o 的方式与其他目标文件(如 main.o、range.o)相同。

[更新] 有示例 Makefile。 https://svn.ece.gatech.edu/repos/Manifold/tags/0.4/code/models/processor/zesto/Makefile

谷歌搜索 makedepend 目标后,我更新了以下内容:

OBJS =  main.$(OEXT) syscall.$(OEXT) memory.$(OEXT) regs.$(OEXT) \
        loader.$(OEXT) endian.$(OEXT) dlite.$(OEXT) symbol.$(OEXT) \
        eval.$(OEXT) options.$(OEXT) stats.$(OEXT) eio.$(OEXT) \
        range.$(OEXT) misc.$(OEXT) machine.$(OEXT) bbtracker.$(OEXT)

bbtracker.$(OEXT): /usr/include/stdlib.h  /usr/include/stdio.h /usr/include/malloc.h
bbtracker.$(OEXT): bbtracker.h
main.$(OEXT): host.h misc.h machine.h machine.def endian.h version.h dlite.h
main.$(OEXT): regs.h memory.h options.h stats.h eval.h loader.h sim.h
sim-fast.$(OEXT): bbtracker.h

现在编译成功了。

c gcc makefile simulation
1个回答
0
投票

问题解决了吗?最近我用 simplesim 遇到了同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.