Skip to content

Commit

Permalink
Enable various GCC 11-13 builds (#283)
Browse files Browse the repository at this point in the history
Also expand Ubuntu support.
  • Loading branch information
mbautin authored Sep 22, 2024
1 parent 2fab888 commit 224279f
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 37 deletions.
77 changes: 58 additions & 19 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,47 @@ jobs:

- name: ubuntu2204-x86_64-gcc11
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-13T18_52_51
docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-20T23_57_46
build_thirdparty_args: >-
--compiler-prefix=/usr
--compiler-family=gcc
--compiler-suffix=-11
architecture: x86_64

- name: ubuntu2204-x86_64-gcc12
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-20T23_57_46
build_thirdparty_args: >-
--compiler-prefix=/usr
--compiler-family=gcc
--compiler-suffix=-12
architecture: x86_64

- name: ubuntu2204-x86_64-clang17
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-13T18_52_51
docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-20T23_57_46
build_thirdparty_args: >-
--toolchain=llvm17
architecture: x86_64

# ---------------------------------------------------------------------------------------
# Ubuntu 24.04
# ---------------------------------------------------------------------------------------

# GCC 11 and GCC 12 have DiskANN compilation issues on Ubuntu 24.04.

- name: ubuntu2404-x86_64-gcc13
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2404_x86_64:v2024-09-20T23_57_48
build_thirdparty_args: >-
--compiler-prefix=/usr
--compiler-family=gcc
--compiler-suffix=-13
architecture: x86_64

- name: ubuntu2404-x86_64-clang17
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2404_x86_64:v2024-09-20T23_57_48
build_thirdparty_args: >-
--toolchain=llvm17
architecture: x86_64
Expand Down Expand Up @@ -119,15 +150,29 @@ jobs:

- name: almalinux8-x86_64-gcc11
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-13T18_52_52
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
build_thirdparty_args: >-
--devtoolset=11
architecture: x86_64

- name: almalinux8-x86_64-gcc12
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
build_thirdparty_args: >-
--devtoolset=12
architecture: x86_64

- name: almalinux8-x86_64-gcc13
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
build_thirdparty_args: >-
--devtoolset=13
architecture: x86_64

# Clang/LLVM 17
- name: almalinux8-x86_64-clang17
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-13T18_52_52
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
build_thirdparty_args: >-
--toolchain=llvm17
architecture: x86_64
Expand All @@ -136,39 +181,33 @@ jobs:
# TODO: enable ASAN/TSAN for Clang 18.
- name: almalinux8-x86_64-clang18
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-13T18_52_52
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
build_thirdparty_args: >-
--toolchain=llvm18
--skip-sanitizers
architecture: x86_64

# ---------------------------------------------------------------------------------------
# Ubuntu 23.04
# AlmaLinux 9
# ---------------------------------------------------------------------------------------

- name: ubuntu2404-x86_64-gcc13
- name: almalinux9-x86_64-gcc12
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2404_x86_64:v2024-09-13T18_52_51
docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-20T20_33_54
build_thirdparty_args: >-
--compiler-prefix=/usr
--compiler-suffix=-13
--compiler-family=gcc
--devtoolset=12
architecture: x86_64

# ---------------------------------------------------------------------------------------
# AlmaLinux 9
# ---------------------------------------------------------------------------------------

- name: almalinux9-x86_64-gcc12
- name: almalinux9-x86_64-gcc13
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-13T18_52_52
docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-20T20_33_54
build_thirdparty_args: >-
--devtoolset=12
--devtoolset=13
architecture: x86_64

- name: almalinux9-x86_64-clang17
os: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-13T18_52_52
docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-20T20_33_54
build_thirdparty_args: >-
--toolchain=llvm17
architecture: x86_64
Expand Down
45 changes: 28 additions & 17 deletions python/build_definitions/diskann.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,28 +123,39 @@ def get_additional_compiler_flags(self, builder: BuilderInterface) -> List[str]:
flags.append("-D__PURE_SYS_C99_HEADERS__=1")

ignored_warnings = []
if builder.compiler_choice.is_gcc_major_version_at_least(13):
ignored_warnings = [
'overloaded-virtual',

if builder.compiler_choice.is_gcc_major_version_at_least(11):
ignored_warnings.extend([
'reorder',
'sign-compare',
'unused-but-set-variable',
'unused-variable',
]
elif builder.compiler_choice.is_clang() and \
builder.compiler_choice.is_llvm_major_version_at_least(18):
ignored_warnings = [
'inconsistent-missing-override',
'instantiation-after-specialization',
'nan-infinity-disabled',
])

if builder.compiler_choice.is_gcc_major_version_at_least(13):
ignored_warnings.extend([
'overloaded-virtual',
'reorder-ctor',
'return-type',
'sign-compare',
'unused-but-set-variable',
'unused-lambda-capture',
'unused-private-field',
'unused-variable',
]
])

if builder.compiler_choice.is_clang():
if builder.compiler_choice.is_llvm_major_version_at_least(17):
ignored_warnings.extend([
'inconsistent-missing-override',
'instantiation-after-specialization',
'overloaded-virtual',
'reorder-ctor',
'return-type',
'unused-but-set-variable',
'unused-lambda-capture',
'unused-private-field',
'unused-variable',
])

if builder.compiler_choice.is_llvm_major_version_at_least(18):
ignored_warnings.extend([
'nan-infinity-disabled',
])

if ignored_warnings:
flags.extend([
Expand Down
2 changes: 1 addition & 1 deletion requirements_frozen.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ importlib-resources==6.1.0
jaraco.classes==3.3.0
jeepney==0.8.0
keyring==24.2.0
llvm-installer==1.4.6
llvm-installer==1.4.9
markdown-it-py==3.0.0
mdurl==0.1.2
more-itertools==10.1.0
Expand Down

0 comments on commit 224279f

Please sign in to comment.