SimpleSSD / SimpleSSD-FullSystem

Open-Source Licensed Educational SSD Simulator for High-Performance Storage and Full-System Evaluations
BSD 3-Clause "New" or "Revised" License
93 stars 47 forks source link

problem build SimpleSSD #13

Closed alinezhad2018 closed 4 years ago

alinezhad2018 commented 4 years ago

Running Environment (please complete the following information):

Execution information

Explain what you want to ask here:

A clear explanation of your question.

Hi

I could build the original version of Gem5 on my system, scons build/X86/gem5.opt -j 29 --ignore-style

but when I try to build the Simple SSD fullsystem I get the following error:

[VER TAGS] -> X86/sim/tags.cc [ LINK] -> X86/gem5.opt build/X86/dev/storage/lib.o.partial: In function NVMeInterface::regStats()': /-----/SimpleSSD-FullSystem/build/X86/dev/storage/nvme_interface.cc:598: undefined reference toSimpleSSD::getCPUStatList(std::vector<SimpleSSD::Stats, std::allocator >&, std::cxx11::basic_string<char, std::char_traits, std::allocator >)' build-----/storage/lib.o.partial: In function NVMeInterface::NVMeInterface(NVMeInterfaceParams*)': /--------/SimpleSSD-FullSystem/build/X86/dev/storage/nvme_interface.cc:54: undefined reference toinitSimpleSSDEngine(SimpleSSD::Simulator, std::ostream, std::ostream*, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)' buil/------/lib.o.partial: In function SATAInterface::regStats()': /----/SimpleSSD-FullSystem/build/X86/dev/storage/sata_interface.cc:432: undefined reference toSimpleSSD::getCPUStatList(std::vector<SimpleSSD::Stats, std::allocator >&, std::cxx11::basic_string<char, std::char_traits, std::allocator >)' build/X86/dev/storage/lib.o.partial: In function SATAInterface::SATAInterface(SATAInterfaceParams*)': /--/--/---/--/SimpleSSD-FullSystem/build/X86/dev/storage/sata_interface.cc:54: undefined reference toinitSimpleSSDEngine(SimpleSSD::Simulator, std::ostream, std::ostream*, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)' collect2: error: ld returned 1 exit status scons: *** [build/X86/gem5.opt] Error 1 scons: building terminated because of errors.

kukdh1 commented 4 years ago

Hi,

Could you check that the simplessd version is correct with following commands?

$ cd <your simplessd-fullsystem directory>
$ git show -s HEAD
$ cd src/dev/storage/simplessd
$ git show -s HEAD

For example:

[kukdh1@kukdh1-workstation public-fullsystem]$ git show -s HEAD
commit 96377cf409f1bc10d8b5678221f1aa16b1cb0d06 (HEAD -> master, tag: v2.0.10, origin/master, origin/HEAD)
Author: Donghyun Gouk <kukdh1@gmail.com>
Date:   Sat Apr 4 04:19:42 2020 +0900

    Release SimpleSSD FullSystem version 2.0.10
[kukdh1@kukdh1-workstation public-fullsystem]$ cd src/dev/storage/simplessd/
[kukdh1@kukdh1-workstation simplessd]$ git show -s HEAD
commit 73ad8ad5220ce5ebfeb055687d0328765a046c0f (HEAD, tag: v2.0.13)
Author: Donghyun Gouk <kukdh1@gmail.com>
Date:   Sun Feb 2 02:16:25 2020 +0900

    Release SimpleSSD version 2.0.13
[kukdh1@kukdh1-workstation simplessd]$

Thanks.

alinezhad2018 commented 4 years ago

Hi,

commit 96377cf409f1bc10d8b5678221f1aa16b1cb0d06 Author: Donghyun Gouk kukdh1@gmail.com Date: Sat Apr 4 04:19:42 2020 +0900 Release SimpleSSD FullSystem version 2.0.10

commit 73ad8ad5220ce5ebfeb055687d0328765a046c0f Author: Donghyun Gouk kukdh1@gmail.com Date: Sun Feb 2 02:16:25 2020 +0900

Release SimpleSSD version 2.0.13

Thanks,

kukdh1 commented 4 years ago

Hi,

I can successfully built SimpleSSD-FullSystem v2.0.10 in CentOS 7.6 with stock GCC 4.8.5. (I cannot install GCC version 5 with devtoolset-5 -- removed from scl repo?) (I usually uses GCC 8.3.1 -- stock GCC of CentOS 8.1)

  1. Could you provide more environment information to reproduce your problem?
  2. Did you built GCC from source? Then, could you try to compile using default GCC (4.8.5)? Please erase your build directory before scons.

Thanks.

kukdh1 commented 4 years ago

Hi,

  1. Information

Environment related to compilation such as compiler version, build option and so on. (I assumes you did not modified any source code) I think the GCC built from source is the problem, though.

  1. Default GCC

You need to restore your PATH environment variable. If you are not familiar with this, I suggest you to install more recent version of GCC using yum -- just for compilation check. The scl util manages environment variables for you.

Use following commands to test:

# With root account
yum install centos-release-scl-rh centos-release-scl
yum install devtoolset-8
# With non-root account
scl enable devtoolset-8 bash
cd <your simplessd-fullsystem directory>
rm -rf build
scons build/X86/gem5.opt -j 24 --ignore-style

To exit from the GCC-8 environment, just type exit on the shell.

Thanks,

kukdh1 commented 4 years ago

Hi,

You need to install devtoolset-8 to enable GCC8.

Please ask administrator to install them, or go to default gcc 4.8.5.

As this problem looks like environmental problem -- not a SimpleSSD issue, I will close it.

Thanks.