Hi, I always used this code to update my OpenROAD:...
# openroad
a
Hi, I always used this code to update my OpenROAD:
Copy code
if [[ "$installed_openroad_version" == "$latest_openroad_commit_short" ]]; then
  echo "OpenROAD is up to date."
else
  echo "OpenROAD is not up to date."
  cd 
  cd OpenROAD || exit 1
  # Pull the latest changes and update submodules
  git checkout master
  git pull
  git submodule update --init --recursive
  run_sudo git clean -xdf

  # Build OpenROAD
  mkdir -p build && cd build
  cmake .. 
  make -j $(nproc)
  run_sudo make install
  cd
fi
However, recently, I got this error for the update:
Copy code
[ 50%] Building CXX object src/odb/src/db/CMakeFiles/db.dir/dbBlock.cpp.o
/home/ashkan/OpenROAD/src/odb/src/db/dbBlock.cpp: In member function 'std::string odb::_dbBlock::makeNewName(odb::dbModInst*, const char*, const odb::dbNameUniquifyType&, odb::uint&, const std::function<bool(const char*)>&)':
/home/ashkan/OpenROAD/src/odb/src/db/dbBlock.cpp:3713:13: error: no matching function for call to 'fmt::v7::basic_memory_buffer<char>::append(fmt::v7::string_view)'
 3713 |   buf.append(fmt::string_view(base_name));
      |   ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/spdlog/fmt/fmt.h:22,
                 from /usr/local/include/spdlog/common.h:36,
                 from /usr/local/include/spdlog/details/os.h:6,
                 from /home/ashkan/OpenROAD/src/utl/include/utl/Logger.h:20,
                 from /home/ashkan/OpenROAD/src/odb/include/odb/odb.h:15,
                 from /home/ashkan/OpenROAD/src/odb/include/odb/ZException.h:6,
                 from /home/ashkan/OpenROAD/src/odb/src/db/dbAttrTable.h:6,
                 from /home/ashkan/OpenROAD/src/odb/src/db/dbCore.h:25,
                 from /home/ashkan/OpenROAD/src/odb/src/db/dbBlock.h:11,
                 from /home/ashkan/OpenROAD/src/odb/src/db/dbBlock.cpp:4:
/usr/local/include/spdlog/fmt/bundled/core.h:700:30: note: candidate: 'template<class U> void fmt::v7::detail::buffer<T>::append(const U*, const U*) [with U = U; T = char]'
  700 |   template <typename U> void append(const U* begin, const U* end);
      |                              ^~~~~~
/usr/local/include/spdlog/fmt/bundled/core.h:700:30: note:   template argument deduction/substitution failed:
/home/ashkan/OpenROAD/src/odb/src/db/dbBlock.cpp:3713:13: note:   mismatched types 'const U*' and 'fmt::v7::basic_string_view<char>'
 3713 |   buf.append(fmt::string_view(base_name));
      |   ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/odb/src/db/CMakeFiles/db.dir/build.make:132: src/odb/src/db/CMakeFiles/db.dir/dbBlock.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2855: src/odb/src/db/CMakeFiles/db.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
Installed OpenROAD version: 06fe3d906d
Latest OpenROAD commit: 5d0d0fb10
How can I update my OpenROAD now? Is there anything changed during installation recently?
m
I would guess you have a version issue with spdlog. Try re-running the dependency installer
a
@Matt Liberty I ran these lines:
Copy code
git checkout master
git pull
git submodule update --init --recursive
sudo git clean -xdf
sudo ./etc/DependencyInstaller.sh -base
./etc/DependencyInstaller.sh -common -local
Those lines worked until I ran this:
./etc/Build.sh
and then at 69% I got this:
Copy code
[ 69%] Building CXX object src/odb/src/lefin/CMakeFiles/lefin.dir/MetalWidthViaMapParser.cpp.o
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
gmake[2]: *** [src/odb/src/lefin/CMakeFiles/lefin.dir/build.make:104: src/odb/src/lefin/CMakeFiles/lefin.dir/lefTechLayerSpacingEolParser.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
[ 69%] Linking CXX executable TestDistributed
[ 69%] Built target TestDistributed
gmake[1]: *** [CMakeFiles/Makefile2:2992: src/odb/src/lefin/CMakeFiles/lefin.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2

real    6m24.264s
user    88m37.993s
sys     8m0.555s
e
Sounds like a compiler bug, or you ran out of memory. What's your g++ version? Can you try again and monitor your memory usage?
m
Try building with one thread and see if it solves it. Mostly commonly out of memory
a
@Emil J Tywoniak @Matt Liberty Thank you for your replies. Using one thread solved the problem
👍 1