Skip to content

Conversation

@rfsaliev
Copy link
Collaborator

@rfsaliev rfsaliev commented Jul 2, 2025

Describe the changes in the pull request

This change includes compatibility issues for Linux OSes with GLIBC prior to v.2.28 including AmazonLinux 2.
Now the minimum supported GLIBC version is 2.26.
This change also includes the workaround for GCC v.11.2, which does not fully support C++20 standard.

Which issues this PR fixes

  1. AmazonLinux 2 has old GLIBC version 2.26 released in August 2017
  2. Limited support of C++20 standard in GCC v.11.2

Main objects this PR modified

  1. ...
  2. ...

Mark if applicable

  • This PR introduces API changes
  • This PR introduces serialization changes

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR broadens Linux compatibility to GLIBC ≥2.26 (e.g., AmazonLinux 2) and adds a GCC 11.2 workaround by:

  • Replacing invalid view() calls in tests with str().
  • Extending CMake to detect GLIBC 2.26 and 2.28 and select appropriate SVS shared-library URLs or disable the build.

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
tests/unit/test_svs.cpp Swapped .view() for .str() on ostringstream to fetch logs.
cmake/svs.cmake Added checks for GLIBC 2.26/2.28 and conditional SVS_SHARED_LIB configuration.

@rfsaliev rfsaliev mentioned this pull request Jul 2, 2025
1 task
Copy link
Collaborator

@meiravgri meiravgri left a comment

Choose a reason for hiding this comment

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

great thanks a lot !

if (GLIBC_2_28_FOUND)
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.8-dev/svs-shared-library-0.0.8-NIGHTLY-20250630.tar.gz" CACHE STRING "SVS URL")
elseif(GLIBC_2_26_FOUND)
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.8-dev/svs-shared-library-0.0.8-NIGHTLY-20250701-glibc-2_26.tar.gz" CACHE STRING "SVS URL")
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is there any difference between the two binaries aside from the system they were built on?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@ethanglaser, can you please provide qualified answer to this question?
Thank you.

Copy link
Collaborator

Choose a reason for hiding this comment

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

No other differences

@rfsaliev rfsaliev force-pushed the rfsaliev/svs-glibc-2-26 branch from da49299 to 9e7f34c Compare July 2, 2025 12:12
@meiravgri meiravgri self-requested a review July 2, 2025 12:47
@meiravgri meiravgri enabled auto-merge July 2, 2025 12:48
@codecov
Copy link

codecov bot commented Jul 2, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 96.86%. Comparing base (b1245ff) to head (9e7f34c).
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #720   +/-   ##
=======================================
  Coverage   96.86%   96.86%           
=======================================
  Files         122      122           
  Lines        7397     7397           
=======================================
  Hits         7165     7165           
  Misses        232      232           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@meiravgri meiravgri added this pull request to the merge queue Jul 2, 2025
github-merge-queue bot pushed a commit that referenced this pull request Jul 2, 2025
…nux 2 (#720)

* [SVS] Add support for GLIBC 2.26 systems. E.g. AmazonLinux 2

* Workaround GCC v11.2 C++20 compatibility issue

* fixup! [SVS] Add support for GLIBC 2.26 systems. E.g. AmazonLinux 2
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jul 2, 2025
@rfsaliev rfsaliev added this pull request to the merge queue Jul 2, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jul 2, 2025
@rfsaliev rfsaliev added this pull request to the merge queue Jul 2, 2025
Merged via the queue into main with commit e1d0334 Jul 2, 2025
25 checks passed
@rfsaliev rfsaliev deleted the rfsaliev/svs-glibc-2-26 branch July 2, 2025 18:32
github-actions bot pushed a commit that referenced this pull request Jul 2, 2025
…nux 2 (#720)

* [SVS] Add support for GLIBC 2.26 systems. E.g. AmazonLinux 2

* Workaround GCC v11.2 C++20 compatibility issue

* fixup! [SVS] Add support for GLIBC 2.26 systems. E.g. AmazonLinux 2

(cherry picked from commit e1d0334)
@github-actions
Copy link

github-actions bot commented Jul 2, 2025

Successfully created backport PR for 8.2:

github-merge-queue bot pushed a commit that referenced this pull request Jul 3, 2025
…azonLinux 2 (#721)

[SVS] Add support for GLIBC 2.26 systems and GCC v11.2. E.g. AmazonLinux 2 (#720)

* [SVS] Add support for GLIBC 2.26 systems. E.g. AmazonLinux 2

* Workaround GCC v11.2 C++20 compatibility issue

* fixup! [SVS] Add support for GLIBC 2.26 systems. E.g. AmazonLinux 2

(cherry picked from commit e1d0334)

Co-authored-by: Rafik Saliev <rafik.f.saliev@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants