#Firesim_ChipYard Hi guys, I have a issue when run...
# general
t
#Firesim_ChipYard Hi guys, I have a issue when run "firesim infrasetup" , follow up the guide at https://docs.fires.im/en/stable/Running-OnPrem-Simulations-Tutorial/Running-a-Single-Node-Simulation.html I faced a ERROR "fatal error: experimental/xrt_device.h: No such file or directory" It makes compilation terminate. | _fire/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/build -std=c++17 -include /home/tonns/00_Chipyard/01_fire/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/build/FireSim-generated.const.h -c -o /home/tonns/00_Chipyard/01_fire/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/build/simif_vitis.o /home/tonns/00_Chipyard/01_fire/firesim/sim/midas/src/main/cc/simif_vitis.cc
Copy code
2023-05-31 05:44:05,317 [flush       ] [INFO ]  [localhost] out:  [01m [K/home/tonns/00_Chipyard/01_fire/firesim/sim/midas/src/main/cc/simif_vitis.cc:12:10: [m [K  [01;31m [Kfatal error:  [m [Kexperimental/xrt_device.h: No such file or directory
2023-05-31 05:44:05,318 [flush       ] [INFO ]  [localhost] out:    12 | #include  [01;31m [K"experimental/xrt_device.h" [m [K
2023-05-31 05:44:05,318 [flush       ] [INFO ]  [localhost] out:       |           [01;31m [K^~~~~~~~~~~~~~~~~~~~~~~~~~~ [m [K
2023-05-31 05:44:05,318 [flush       ] [INFO ]  [localhost] out: compilation terminated.
2023-05-31 05:44:05,319 [flush       ] [INFO ]  [localhost] out: make[1]: *** [Makefile:45: /home/tonns/00_Chipyard/01_fire/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/build/simif_vitis.o] Error 1
2023-05-31 05:44:05,319 [flush       ] [INFO ]  [localhost] out: make[1]: Leaving directory '/home/tonns/00_Chipyard/01_fire/firesim/sim/midas/src/main/cc'
2023-05-31 05:44:05,319 [flush       ] [INFO ]  [localhost] out: make: *** [make/driver.mk:44: /home/tonns/00_Chipyard/01_fire/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/FireSim-vitis] Error 2
2023-05-31 05:44:05,321 [flush       ] [INFO ]  [localhost] out: 
2023-05-31 05:44:05,356 [flush       ] [INFO ]  Fatal error: run() received nonzero return code 2 while executing!
2023-05-31 05:44:05,356 [flush       ] [INFO ]  Requested: make DESIGN=FireSim TARGET_CONFIG=FireSimRocketMMIOOnlyConfig PLATFORM_CONFIG=BaseVitisConfig PLATFORM=vitis vitis
2023-05-31 05:44:05,356 [flush       ] [INFO ]  Executed: /bin/bash -l -c "cd /home/tonns/00_Chipyard/01_fire/firesim/deploy/../ && export RISCV=/home/tonns/00_Chipyard/01_fire/firesim/.conda-env/riscv-tools && export PATH=/home/tonns/00_Chipyard/01_fire/firesim/utils/fireperf:/home/tonns/00_Chipyard/01_fire/firesim/utils/fireperf/FlameGraph:/home/tonns/00_Chipyard/01_fire/firesim/sw/firesim-software:/home/tonns/00_Chipyard/01_fire/firesim/.conda-env/riscv-tools/bin:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/chipyard/sims/1_fire/firesim/target-design/chipyard/software/firemarshal:/home/tonns/00_Chipyard/01_fire/firesim/.conda-env/bin:/opt/conda/condabin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tonns/00_Chipyard/01_fire/firesim/deploy && export LD_LIBRARY_PATH=/home/tonns/00_Chipyard/01_fire/firesim/.conda-env/riscv-tools/lib && source sourceme-f1-manager.sh --skip-ssh-setup && cd sim/ && make DESIGN=FireSim TARGET_CONFIG=FireSimRocketMMIOOnlyConfig PLATFORM_CONFIG=BaseVitisConfig PLATFORM=vitis vitis"
2023-05-31 05:44:05,356 [flush       ] [INFO ]  Aborting.
2023-05-31 05:44:05,356 [<module>    ] [ERROR]  Fatal error.|
Please refer to the log file to know more information. Do you have any ideas to solve this problem? Best regards, TonNguyen
j
Hello! This error message, missing
xrt_device.h
, looks typical of a missing dependency. In particular, this file: https://github.com/Xilinx/XRT/blob/master/src/runtime_src/core/include/experimental/xrt_device.h Appears to be missing.
I would be tempted to try to find that file with
find . -name xrt_device.h
In your case, maybe something like this:
find /home/tonns/00_Chipyard/01_fire/ /usr/include /usr/local/include -name xrt_device.h
Not entirely sure that this is related, but there appear to be some script to init submodules: https://docs.fires.im/en/stable/Running-OnPrem-Simulations-Tutorial/Running-a-Single-Node-Simulation.html#building-target-software I would be tempted to double-check these kind of operations that are typical for fetching dependencies.
Ah! https://docs.fires.im/en/stable/Initial-OnPrem-Setup/Setting-up-your-On-Premises-Machine.html?highlight=xrt#requirements
We require the following programs/packages installed from the Xilinx website in addition to a physical U250 installation:
• Xilinx XRT and U250 board package (corresponding with Vitis 2022.1) * Ensure you complete the “Installing the Deployment Software” and “Card Bring-Up and Validation” sections in the following link: https://docs.xilinx.com/r/en-US/ug1301-getting-started-guide-alveo-accelerator-cards/Installing-the-Deployment-Software
t
Hi @Josuah Demangeon , Thank you ... very useful !!! i passed this issue , however i got error related to ld, Do you have any ideals more ?
Copy code
2023-06-08 02:04:35,027 [main        ] [INFO ]  FireSim Manager. Docs: <https://docs.fires.im>
Running: infrasetup

2023-06-08 02:04:35,033 [__init__    ] [WARNI]  vitis_firesim_rocket_singlecore_no_nic is overriding a deploy triplet in your config_hwdb.yaml file. Make sure you understand why!
2023-06-08 02:04:35,033 [__init__    ] [DEBUG]  {'config_file_name': 'config_hwdb.yaml',
dromajo_t::init()[m[K':
2023-06-08 02:05:01,611 [flush       ] [INFO ]  [localhost] out: [01m[K/home/tonns/00_Chipyard/04_firesim/firesim/sim/firesim-lib/src/main/cc/bridges/dromajo.cc:154:21:[m[K [01;35m[Kwarning: [m[Kcomparison of integer expressions of different signedness: '[01m[Kint[m[K' and '[01m[Kstd::vector<std::__cxx11::basic_string<char> >::size_type[m[K' {aka '[01m[Klong unsigned int[m[K'} [[01;35m[K]8;;<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsign-compare> -Wsign-compare]8;; [m[K]
2023-06-08 02:05:01,611 [flush       ] [INFO ]  [localhost] out:   154 |   for (int i = 0; [01;35m[Ki < dromajo_args.size()[m[K; ++i) {
2023-06-08 02:05:01,611 [flush       ] [INFO ]  [localhost] out:       |                   [01;35m[K~~^~~~~~~~~~~~~~~~~~~~~[m[K
2023-06-08 02:05:02,318 [flush       ] [INFO ]  [localhost] out: At global scope:
2023-06-08 02:05:02,319 [flush       ] [INFO ]  [localhost] out: [01m[Kcc1plus:[m[K [01;36m[Knote: [m[Kunrecognized command-line option '[01m[K-Wno-inconsistent-missing-override[m[K' may have been intended to silence earlier diagnostics
2023-06-08 02:05:07,693 [flush       ] [INFO ]  [localhost] out: [01m[K/home/tonns/00_Chipyard/04_firesim/firesim/sim/firesim-lib/src/main/cc/bridges/tracerv.cc:[m[K In static member function '[01m[Kstatic void tracerv_t::serialize(const uint64_t*, size_t, FILE*, std::function<void(long unsigned int, long unsigned int)>, int, bool, bool, bool)[m[K':
2023-06-08 02:05:07,693 [flush       ] [INFO ]  [localhost] out: [01m[K/home/tonns/00_Chipyard/04_firesim/firesim/sim/firesim-lib/src/main/cc/bridges/tracerv.cc:255:23:[m[K [01;35m[Kwarning: [m[Kcomparison of integer expressions of different signedness: '[01m[Kint[m[K' and '[01m[Klong unsigned int[m[K' [[01;35m[K]8;;<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsign-compare> -Wsign-compare]8;; [m[K]
2023-06-08 02:05:07,693 [flush       ] [INFO ]  [localhost] out:   255 |     for (int i = 0; [01;35m[Ki < (bytes_received / sizeof(uint64_t))[m[K; i += 8) {
2023-06-08 02:05:07,694 [flush       ] [INFO ]  [localhost] out:       |                     [01;35m[K~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[m[K
2023-06-08 02:05:07,694 [flush       ] [INFO ]  [localhost] out: [01m[K/home/tonns/00_Chipyard/04_firesim/firesim/sim/firesim-lib/src/main/cc/bridges/tracerv.cc:280:23:[m[K [01;35m[Kwarning: [m[Kcomparison of integer expressions of different signedness: '[01m[Kint[m[K' and '[01m[Klong unsigned int[m[K' [[01;35m[K]8;;<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsign-compare> -Wsign-compare]8;; [m[K]
2023-06-08 02:05:07,694 [flush       ] [INFO ]  [localhost] out:   280 |     for (int i = 0; [01;35m[Ki < (bytes_received / sizeof(uint64_t))[m[K; i += 8) {
2023-06-08 02:05:07,694 [flush       ] [INFO ]  [localhost] out:       |                     [01;35m[K~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[m[K
2023-06-08 02:05:07,694 [flush       ] [INFO ]  [localhost] out: [01m[K/home/tonns/00_Chipyard/04_firesim/firesim/sim/firesim-lib/src/main/cc/bridges/tracerv.cc:296:23:[m[K [01;35m[Kwarning: [m[Kcomparison of integer expressions of different signedness: '[01m[Kint[m[K' and '[01m[Klong unsigned int[m[K' [[01;35m[K]8;;<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsign-compare> -Wsign-compare]8;; [m[K]
2023-06-08 02:05:07,694 [flush       ] [INFO ]  [localhost] out:   296 |     for (int i = 0; [01;35m[Ki < (bytes_received / sizeof(uint64_t))[m[K; i += 8) {
2023-06-08 02:05:07,694 [flush       ] [INFO ]  [localhost] out:       |                     [01;35m[K~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[m[K
2023-06-08 02:05:08,319 [flush       ] [INFO ]  [localhost] out: At global scope:
2023-06-08 02:05:08,320 [flush       ] [INFO ]  [localhost] out: [01m[Kcc1plus:[m[K [01;36m[Knote: [m[Kunrecognized command-line option '[01m[K-Wno-inconsistent-missing-override[m[K' may have been intended to silence earlier diagnostics
2023-06-08 02:05:17,022 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/librt.so when searching for -lrt
2023-06-08 02:05:17,023 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/librt.a when searching for -lrt
2023-06-08 02:05:17,023 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: cannot find -lxrt_coreutil: No such file or directory
2023-06-08 02:05:17,029 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libdl.so when searching for -ldl
2023-06-08 02:05:17,029 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libdl.a when searching for -ldl
2023-06-08 02:05:17,036 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libpthread.so when searching for -lpthread
2023-06-08 02:05:17,037 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libpthread.a when searching for -lpthread
2023-06-08 02:05:17,043 [flush       ] [INFO ]  [localhost] out: collect2: error: ld returned 1 exit status
2023-06-08 02:05:17,047 [flush       ] [INFO ]  [localhost] out: make[1]: *** [Makefile:51: /home/tonns/00_Chipyard/04_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/FireSim-vitis] Error 1
2023-06-08 02:05:17,047 [flush       ] [INFO ]  [localhost] out: make[1]: Leaving directory '/home/tonns/00_Chipyard/04_firesim/firesim/sim/midas/src/main/cc'
2023-06-08 02:05:17,047 [flush       ] [INFO ]  [localhost] out: make: *** [make/driver.mk:44: /home/tonns/00_Chipyard/04_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/FireSim-vitis] Error 2
2023-06-08 02:05:17,049 [flush       ] [INFO ]  [localhost] out: 
2023-06-08 02:05:17,061 [flush       ] [INFO ]  Fatal error: run() received nonzero return code 2 while executing!
2023-06-08 02:05:17,061 [flush       ] [INFO ]  Requested: make DESIGN=FireSim TARGET_CONFIG=FireSimRocketMMIOOnlyConfig PLATFORM_CONFIG=BaseVitisConfig PLATFORM=vitis vitis
2023-06-08 02:05:17,061 [flush       ] [INFO ]  Executed: /bin/bash -l -c "cd /home/tonns/00_Chipyard/04_firesim/firesim/deploy/../ && export RISCV=/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/riscv-tools && export PATH=/opt/xilinx/xrt/bin:/home/tonns/00_Chipyard/04_firesim/firesim/utils/fireperf:/home/tonns/00_Chipyard/04_firesim/firesim/utils/fireperf/FlameGraph:/home/tonns/00_Chipyard/04_firesim/firesim/sw/firesim-software:/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/riscv-tools/bin:/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin:/opt/conda/condabin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tonns/00_Chipyard/04_firesim/firesim/deploy && export LD_LIBRARY_PATH=/opt/xilinx/xrt/lib:/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/riscv-tools/lib && source sourceme-f1-manager.sh --skip-ssh-setup && cd sim/ && make DESIGN=FireSim TARGET_CONFIG=FireSimRocketMMIOOnlyConfig PLATFORM_CONFIG=BaseVitisConfig PLATFORM=vitis vitis"
2023-06-08 02:05:17,061 [flush       ] [INFO ]  Aborting.
2023-06-08 02:05:17,061 [<module>    ] [ERROR]  Fatal error.
Traceback (most recent call last):
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/firesim", line 510, in <module>
    main(args)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/firesim", line 449, in main
    t['task'](t['config'](args))
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/firesim", line 228, in infrasetup
    runtime_conf.infrasetup()
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/runtools/runtime_config.py", line 671, in infrasetup
    self.firesim_topology_with_passes.infrasetup_passes(use_mock_instances_for_testing)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/runtools/firesim_topology_with_passes.py", line 426, in infrasetup_passes
    self.pass_build_required_drivers()
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/runtools/firesim_topology_with_passes.py", line 412, in pass_build_required_drivers
    execute(build_drivers_helper, servers, hosts=['localhost'])
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/tasks.py", line 356, in execute
    results[host] = _execute(
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/tasks.py", line 247, in _execute
    return task.run(*args, **kwargs)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/tasks.py", line 147, in run
    return self.wrapped(*args, **kwargs)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/runtools/firesim_topology_with_passes.py", line 408, in build_drivers_helper
    resolved_cfg.build_sim_driver()
  File "/home/tonns/00_Chipyard/04_firesim/firesim/deploy/runtools/runtime_config.py", line 291, in build_sim_driver
    buildresult = run(driverbuildcommand)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/network.py", line 688, in host_prompting_wrapper
    return func(*args, **kwargs)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/operations.py", line 1068, in run
    return _run_command(
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/operations.py", line 944, in _run_command
    error(message=msg, stdout=out, stderr=err)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/utils.py", line 357, in error
    return func(message)
  File "/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/utils.py", line 65, in abort
    raise e
SystemExit: 1
2023-06-08 02:05:17,064 [<module>    ] [INFO ]  The full log of this run is:
/home/tonns/00_Chipyard/04_firesim/firesim/deploy/logs/2023-06-08--06-04-35-infrasetup-DCV17N55CU4ND6AD.log
j
ld
... The Linker. Once all the sources are turned into machine code (using the libraries, headers, etc...). Every piece of machine code (the .o and .a files) are further assembled together in a single binary.
t
I tried add option "-L$(lib_path)" , it got new error " localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: warning: libboost_filesystem-mt.so.1.53.0, needed by /opt/xilinx/xrt/lib/libxrt_coreutil.so, not found (try using -rpath or -rpath-link)"
Copy code
/home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libm.a when searching for -lm
2023-06-08 02:38:46,503 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libc.so when searching for -lc
2023-06-08 02:38:46,503 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libc.a when searching for -lc
2023-06-08 02:38:46,512 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: warning: libboost_filesystem-mt.so.1.53.0, needed by /opt/xilinx/xrt/lib/libxrt_coreutil.so, not found (try using -rpath or -rpath-link)
2023-06-08 02:38:46,513 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: warning: libboost_system-mt.so.1.53.0, needed by /opt/xilinx/xrt/lib/libxrt_coreutil.so, not found (try using -rpath or -rpath-link)
2023-06-08 02:38:46,690 [flush       ] [INFO ]  [localhost] out: /home/tonns/00_Chipyard/04_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/tonns/00_Chipyard/04_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/build/simif_vitis.o: in function `simif_vitis_t::simif_vitis_t(TargetConfig const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
j
Up that log, we see this:
Copy code
skipping incompatible /lib/librt.so when searching for -lrt
 skipping incompatible /lib/librt.a when searching for -lrt
 cannot find -lxrt_coreutil: No such file or directory
 skipping incompatible /lib/libdl.so when searching for -ldl
 skipping incompatible /lib/libdl.a when searching for -ldl
 skipping incompatible /lib/libpthread.so when searching for -lpthread
 skipping incompatible /lib/libpthread.a when searching for -lpthread
These are the very standard libraries, part of the C installation, and in faact, it can find them, but then toss them away saying: "not my taste, sorry"
😆 1
Maybe it is just walking over the list of various libraries, found the 32-bit libraries on othat 64-bit system (frequent to have both), and skipped further...
Copy code
cannot find -lxrt_coreutil: No such file or directory
This might be our real error... -l`xrt`_coreutil might be part of some missing package once again
Or maybe some configuration of the already installed packages...
Oh you just need libboost! libboost_filesystem-mt
I missed your message above, you found the error indeed
Copy code
# apt search libboost 2>&- | grep filesystem
libboost-filesystem-dev/stable,now 1.74.0.3 amd64 [installed,automatic]
  filesystem operations (portable paths, iteration over directories, etc) in C++ (default version)
libboost-filesystem1.74-dev/stable,now 1.74.0-9 amd64 [installed,automatic]
  filesystem operations (portable paths, iteration over directories, etc) in C++
libboost-filesystem1.74.0/stable,now 1.74.0-9 amd64 [installed,automatic]
  filesystem operations (portable paths, iteration over directories, etc) in C++
You might jump in a typical error-to-error chain to find all the dependencies.
Note that you would need the
lib...-dev
packages in addition to the
lib...
one to get the headers of the library .
t
Hi @Josuah Demangeon, Did you try run a example firesim ? Can i get your log file when you run "firesim infrasetup" ? About libboost , i am trying reinstall environment firesim and install libboost ... it will take a long time
j
it looked like your current firesim environment was good, but it does not hurt to reinstall it either... Sorry I have in fact not yet used firesim... Only some general experience with building packages and managing dependencies, etc..
❤️ 1
t
Thank ! your suggestions are helpful during debugging, I will continue to do my best
j
From your last attempt, it looked like you missed some of the numerous libboost-...-dev packages to keep going further, but that the rest was fine.
While building packages, the presence of an error does not always mean that something was done wrong, just that there is a small missing component so that the build can continue further. A lot of errors are expected, and the error message guide the way ahead to tell what is missing. Good luck with it! feel free to come back here with more questions
t
Hi @Josuah Demangeon, I got a new ERROR , it seem be related to a linking issue during the compilation process
Copy code
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/tonns/00_Chipyard/06_firesim/firesim/sim/midas/src/main/cc/simif_vitis.cc:92: undefined reference to `xrt::ip::ip(xrt::device const&, xrt::uuid const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
[localhost] out: collect2: error: ld returned 1 exit status
[localhost] out: make[1]: *** [Makefile:51: /home/tonns/00_Chipyard/06_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/FireSim-vitis] Error 1
[localhost] out: make[1]: Leaving directory '/home/tonns/00_Chipyard/06_firesim/firesim/sim/midas/src/main/cc'
[localhost] out: make: *** [make/driver.mk:44: /home/tonns/00_Chipyard/06_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/FireSim-vitis] Error 2
[localhost] out:
Fatal error: run() received nonzero return code 2 while executing!
Requested: make DESIGN=FireSim TARGET_CONFIG=FireSimRocketMMIOOnlyConfig PLATFORM_CONFIG=BaseVitisConfig PLATFORM=vitis vitis
Executed: /bin/bash -l -c "cd /home/tonns/00_Chipyard/06_firesim/firesim/deploy/../ && export RISCV=/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/riscv-tools && export PATH=/home/tonns/00_Chipyard/06_firesim/firesim/utils/fireperf:/home/tonns/00_Chipyard/06_firesim/firesim/utils/fireperf/FlameGraph:/home/tonns/00_Chipyard/06_firesim/firesim/sw/firesim-software:/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/riscv-tools/bin:/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin:/opt/conda/condabin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/tonns/00_Chipyard/06_firesim/firesim/deploy && export LD_LIBRARY_PATH=/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/riscv-tools/lib && source sourceme-f1-manager.sh --skip-ssh-setup && cd sim/ && make DESIGN=FireSim TARGET_CONFIG=FireSimRocketMMIOOnlyConfig PLATFORM_CONFIG=BaseVitisConfig PLATFORM=vitis vitis"
Aborting.
Fatal error.
Traceback (most recent call last):
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/firesim", line 510, in <module>
    main(args)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/firesim", line 449, in main
    t['task'](t['config'](args))
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/firesim", line 228, in infrasetup
    runtime_conf.infrasetup()
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/runtools/runtime_config.py", line 671, in infrasetup
    self.firesim_topology_with_passes.infrasetup_passes(use_mock_instances_for_testing)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/runtools/firesim_topology_with_passes.py", line 426, in infrasetup_passes
    self.pass_build_required_drivers()
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/runtools/firesim_topology_with_passes.py", line 412, in pass_build_required_drivers
    execute(build_drivers_helper, servers, hosts=['localhost'])
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/tasks.py", line 356, in execute
    results[host] = _execute(
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/tasks.py", line 247, in _execute
    return task.run(*args, **kwargs)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/tasks.py", line 147, in run
    return self.wrapped(*args, **kwargs)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/runtools/firesim_topology_with_passes.py", line 408, in build_drivers_helper
    resolved_cfg.build_sim_driver()
  File "/home/tonns/00_Chipyard/06_firesim/firesim/deploy/runtools/runtime_config.py", line 291, in build_sim_driver
    buildresult = run(driverbuildcommand)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/network.py", line 688, in host_prompting_wrapper
    return func(*args, **kwargs)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/operations.py", line 1068, in run
    return _run_command(
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/operations.py", line 944, in _run_command
    error(message=msg, stdout=out, stderr=err)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/utils.py", line 357, in error
    return func(message)
  File "/home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/lib/python3.10/site-packages/fabric/utils.py", line 65, in abort
    raise e
SystemExit: 1
The full log of this run is:
/home/tonns/00_Chipyard/06_firesim/firesim/deploy/logs/2023-06-09--08-58-29-infrasetup-TR7V9DA65QO3EGJ2.log
do you have any ideals
j
Hello again! So now we have a C++ dependency missing... I wonder if there are separate libraries for the C version and the C++ version:
xrt::ip::ip(xrt::device const&, xrt::uuid const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
is quite some long function name!
👍 1
xrt::ip::ip
is the symbol we need
👍 1
We'll need to read C++ namespaces to figure out what we are looking at: https://github.com/Xilinx/XRT/blob/master/src/runtime_src/core/common/api/xrt_ip.cpp#L321-L325
This seems like the right one, or at least one of them.
So now we need to know how this file is being packaged... hmm... let's try to go up the stream like a salmon
And our file is added to the
core_common_api_library_objects
target
j
@Josuah Demangeon @Ton Nguyen SInh https://support.xilinx.com/s/question/0D52E000078RotySAC/rtl-kernel-flow-undefined-reference-to-xrt?language=en_US https://fpga.epcc.ed.ac.uk/docs/vck5000_building_emulation.html -> Troubleshooting section there are information that related but now, it's seem that current conda env support gcc 12.2.0 and recommence to 9.3.1
👍 1
j
Copy code
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/tonns/00_Chipyard/06_firesim/firesim/sim/midas/src/main/cc/simif_vitis.cc:92: undefined reference to `xrt::ip::ip(xrt::device const&, xrt::uuid const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
This was the error message, maybe there is a compilation command just before? From it we could check if it correctly calls xrt_coreutil
j
but not sure about this. Please investigate together
Thank you a lot @Jack will be giving it a look.
t
This was the error message, maybe there is a compilation command just before?
From it we could check if it correctly calls xrt_coreutil
Hi @Josuah Demangeon,
Copy code
[localhost] out:   296 |     for (int i = 0; i < (bytes_received / sizeof(uint64_t)); i += 8) {
[localhost] out:       |                     ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[localhost] out: At global scope:
[localhost] out: cc1plus: note: unrecognized command-line option '-Wno-inconsistent-missing-override' may have been intended to silence earlier diagnostics
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/librt.so when searching for -lrt
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/librt.a when searching for -lrt
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libdl.so when searching for -ldl
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libdl.a when searching for -ldl
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libpthread.so when searching for -lpthread
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libpthread.a when searching for -lpthread
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libm.so when searching for -lm
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libm.a when searching for -lm
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libc.so when searching for -lc
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: skipping incompatible /lib/libc.a when searching for -lc
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/tonns/00_Chipyard/06_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/build/simif_vitis.o: in function `simif_vitis_t::simif_vitis_t(TargetConfig const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/sim/midas/src/main/cc/simif_vitis.cc:89: undefined reference to `xrt::device::load_xclbin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
[localhost] out: /home/tonns/00_Chipyard/06_firesim/firesim/.conda-env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.2.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/tonns/00_Chipyard/06_firesim/firesim/sim/midas/src/main/cc/simif_vitis.cc:92: undefined reference to `xrt::ip::ip(xrt::device const&, xrt::uuid const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
[localhost] out: collect2: error: ld returned 1 exit status
[localhost] out: make[1]: *** [Makefile:51: /home/tonns/00_Chipyard/06_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/FireSim-vitis] Error 1
[localhost] out: make[1]: Leaving directory '/home/tonns/00_Chipyard/06_firesim/firesim/sim/midas/src/main/cc'
[localhost] out: make: *** [make/driver.mk:44: /home/tonns/00_Chipyard/06_firesim/firesim/sim/output/vitis/FireSim-FireSimRocketMMIOOnlyConfig-BaseVitisConfig/FireSim-vitis] Error 2
[localhost] out:
Fatal error: run() received nonzero return code 2 while executing!
i don't see any error more before
j
Given the insight from @Jack it could be worth modifying the conda package slightly, to add some _`-D_GLIBCXX_USE_CXX11_ABI=0` option_
👍 1
Do you see that
<http://driver.mk|driver.mk>
file on your setup?
You could try adding some invalid command in here, and try to compile again? This would check that this file is indeed being used. If the invalid command does not trigger any bug, this means we are looking at something not used at all
for instance
-l_oops_this_library_does_not_exist
after
-ldl
And then, if you see the linker complain about
-l_oops_this_library_does_not_exist
then you know this is being really used.
and you could try adding
-lxrt++
just in case at the end.
And I think that this _`-D_GLIBCXX_USE_CXX11_ABI=0`_ option is to be added here: https://github.com/firesim/firesim/blob/546ad3f29f42b899a2e34ca73b09037ee0a1e2a8/sim/make/driver.mk#L104
If this work, then these changes can be submitted to firesim! \o/
If not, we'll have to look a bit deeper... But at least we would have found where the compilation flags can be modified.
👍 1
t
Hi @Josuah Demangeon, I have successfully resolved the issue (ld returned 1 exit status) . Although I'm not entirely clear about the root cause of the error, it could possibly be due to a mismatch between the gcc++ version and the operating system. However, when I switched to Ubuntu 18.04.06, it worked. Thank you for your support! Best regards, Ton Nguyen
j
Very glad to know that and congrats!