Skip to content

Instantly share code, notes, and snippets.

@dmick
Created July 26, 2023 20:14
Show Gist options
  • Save dmick/5d506e2ac37b2aab03ac53412219dc21 to your computer and use it in GitHub Desktop.
Save dmick/5d506e2ac37b2aab03ac53412219dc21 to your computer and use it in GitHub Desktop.
Compiler selection
ceph-build and gcc:
for pbuilder systems (debian, ubuntu):
0) the jenkins jobs include a number of scripts in order:
- validate_deb just checks if it's a debian build and exits otherwise
- build_utils.sh loads a bunch of library functions
- setup_deb sets up envvars, chacra dirs/config, etc.
- setup_pbuilder calls build_utils' setup_pbuilder sets up pbuilder
- build_deb calls build_utils' build_debs()
setup_pbuilder:
1) is always called with use_gcc as $1, which causes it to..
2) create a hookdir for when pbuilder runs, and install D04install-updates-repo, which (only for ubuntu):
- enableds $DIST-{updates,backports,security} for Ubuntu
- does apt-get update and apt install gnupg
Note that, like both hook scripts, these run at pbuilder time, not at
setup_pbuilder time
3) calls setup_pbuilder_for_ppa, which, confusingly, installs either
- use_ppa()=false: D10update-gcc-alternatives, which uses the gcc
shipped by the distro (for trusty-jammy), recorded in the script
(up to gcc11 for jammy), or
- use_ppa()=true: D05install-new-gcc to set up the 'ubuntu-toolchain'
repos (only for ceph >17 and ubuntu focal)
build_debs() includes CEPH_EXTRA_CMAKE_ARGS when launching pbuilder, which
can also affect compiler choice.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment