Skip to content

Conversation

@Tulong4Dev
Copy link
Contributor

Migrate to Ubuntu 22.04 LTS

Description

  • Provide dependency requirements for VTR to be developed and run on Ubuntu 22.04 LTS.

Related Issue

Motivation and Context

  • The Ubuntu 18.04 Actions runner image is being deprecated and will be removed by 4/1/23

How Has This Been Tested?

Types of changes

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Infra update

Checklist:

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

@github-actions github-actions bot added the infra Project Infrastructure label Mar 20, 2023
default-jdk \
g++-9 \
gcc-9 \
g++-10 \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ctags -> exuberant-ctags
python -> python2
qt5-default -> qtbase5-dev

Copy link
Contributor

@tangxifan tangxifan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After change the clang-format-7 to clang-format-12
Need to change the clang-format in cmake modules:

xargs -P ${CPU_COUNT} clang-format-7 -style=file -i)

@tangxifan
Copy link
Contributor

tangxifan commented Mar 28, 2023

Since ubuntu 22.04 do not have native packages of

  • gcc/g++ -7
  • gcc/g++ - 8
  • clang-6
  • clang-7
  • clang-7-format

May consider to rework the build compatibility checks:

  • Remove gcc-7, gcc-8, clang-6 and clang-8 support
  • Add clang-12 support

@tangxifan
Copy link
Contributor

May need to modify the build job matrix at:

- { name: 'GCC 7 (Ubuntu Bionic - 18.04)', eval: 'CC=gcc-7 && CXX=g++-7', }
- { name: 'GCC 8 (Debian Buster)', eval: 'CC=gcc-8 && CXX=g++-8', }
- { name: 'GCC 9 (Ubuntu Focal - 20.04)', eval: 'CC=gcc-9 && CXX=g++-9', }
- { name: 'GCC 10 (Ubuntu Hirsute - 21.04)', eval: 'CC=gcc-10 && CXX=g++-10', }
- { name: 'GCC 11 (Latest)', eval: 'CC=gcc-11 && CXX=g++-11', }
- { name: 'Clang 6 (Ubuntu Bionic - 18.04)', eval: 'CC=clang-6.0 && CXX=clang++-6.0', }
- { name: 'Clang 7 (Debian Buster)', eval: 'CC=clang-7 && CXX=clang++-7', }
- { name: 'Clang 10 (Ubuntu Focal - 20.04)', eval: 'CC=clang-10 && CXX=clang++-10', }

@Tulong4Dev
Copy link
Contributor Author

Summary of Current Status:

What Have Been Done:
      1. Updated hostsetup.sh and install_dependencies.sh with modules required for Ubuntu 22.04 jammy; Where, gcc-7,8 and g++-7,8 had been dropped.
      2. Updated test.yml by targeting ubuntu:jammy, and dropped GCC 7,8 and g++-7,8 tests
      3. Update AutoClangFormat.cmake with clang-format-12

Latest Result:
      https://github.com/verilog-to-routing/vtr-verilog-to-routing/actions/runs/4567727210
(same with latest: https://github.com/verilog-to-routing/vtr-verilog-to-routing/actions/runs/4600501945)
      1. QoR failure: There are a few QoR failures in nightly and strong test suites, which can be fixed by updating Golen Results in another PR;
      2. Code format issue: https://github.com/verilog-to-routing/vtr-verilog-to-routing/actions/runs/4567727210/jobs/8061874428, which needs an change to make-format.
      3. Clang-12 Failure: https://github.com/verilog-to-routing/vtr-verilog-to-routing/actions/runs/4567727210/jobs/8061880513, c++ compiler can't find proper header file for "std::swap" function to compile the source file; this one we can't reproduce it with local 22.04 machine, and have no clue on how to fix it. Henner could you please take a look? Really appreciate your help here.

Based current situation, we think to keep CI working is first priority, then we can follow up with other PRs to clean up issue and add back some compatibility supports.

@vaughnbetz @hzeller

@vaughnbetz
Copy link
Contributor

Agreed. So do you recommend a merge now and fix the CI breaks shortly?

@tangxifan
Copy link
Contributor

tangxifan commented Apr 5, 2023

Agreed. So do you recommend a merge now and fix the CI breaks shortly?

Hi @vaughnbetz, yes we suggest to merge it since critical CIs, such as build and regression tests are passing. We just need a few follow-up PRs to fix the code format, build compatibility and update QoR for some regression tests.

@vaughnbetz vaughnbetz merged commit ab2e17f into master Apr 5, 2023
@vaughnbetz vaughnbetz deleted the ubuntu_22.04_dev branch April 5, 2023 01:03
@vaughnbetz
Copy link
Contributor

Merging so CI keeps working. Thanks for the hard work on this one @Tulong4Dev and @tangxifan !
Let me know if you need help fixing the remaining issues -- it is a high priority to get CI green again, since otherwise a lot of problems could creep in over the next days and weeks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infra Project Infrastructure libvtrutil

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants