Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable various GCC 11-13 builds #283

Merged
merged 11 commits into from
Sep 22, 2024
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
Loading