Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion cmake/svs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,14 @@ if(USE_SVS)
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.0.8-dev/svs-shared-library-0.0.8-NIGHTLY-20250629-clang.tar.gz" CACHE STRING "SVS URL")
else()
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")
# Use build from glibc 2.26 if using Amazon Linux 2 OS, otherwise use glibc 2.28 build
file(READ "/etc/os-release" OS_RELEASE_CONTENT)
string(FIND "${OS_RELEASE_CONTENT}" "Amazon Linux 2" AMAZON_LINUX_2_FOUND)
if (NOT AMAZON_LINUX_2_FOUND EQUAL -1)
Copy link
Collaborator

Choose a reason for hiding this comment

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

I find the current phrasing a bit confusing. Could we rephrase or reorder the conditions to make it clearer?

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")
else()
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")
endif()
Comment on lines +55 to +62
Copy link
Collaborator

Choose a reason for hiding this comment

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

Not sure if it is fully correct to focus on OS version rather than GLIBC.
More proper way could be adding between lines 48-49 (if GLIBC_FOUND):

    else()
        include(CheckCSourceRuns)
        check_c_source_runs("#include <features.h>
            int main(){ return __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 28 ?0:1; }"
            GLIBC_2_28_FOUND)
        check_c_source_runs("#include <features.h>
            int main(){ return __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 26 ?0:1; }"
            GLIBC_2_26_FOUND)

then, at line 51

- cmake_dependent_option(SVS_SHARED_LIB "Use SVS pre-compiled shared library" ON "USE_SVS AND GLIBC_FOUND AND SVS_LVQ_SUPPORTED" OFF)
+ cmake_dependent_option(SVS_SHARED_LIB "Use SVS pre-compiled shared library" ON "USE_SVS AND GLIBC_2_26_FOUND AND SVS_LVQ_SUPPORTED" OFF)

Then here:

Suggested change
# Use build from glibc 2.26 if using Amazon Linux 2 OS, otherwise use glibc 2.28 build
file(READ "/etc/os-release" OS_RELEASE_CONTENT)
string(FIND "${OS_RELEASE_CONTENT}" "Amazon Linux 2" AMAZON_LINUX_2_FOUND)
if (NOT AMAZON_LINUX_2_FOUND EQUAL -1)
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")
else()
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")
endif()
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")
else()
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")
endif()

endif()

if(SVS_SHARED_LIB)
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/test_svs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2627,7 +2627,7 @@ TYPED_TEST(SVSTest, logging_runtime_params) {
index_logger->critical("Custom log critical");
index_logger->flush();
// Check that the log messages are written to the ostringstream
auto index_log = os_index.view();
auto index_log = os_index.str();
EXPECT_NE(index_log.find("Custom log trace"), std::string::npos);
EXPECT_NE(index_log.find("Custom log debug"), std::string::npos);
EXPECT_NE(index_log.find("Custom log info"), std::string::npos);
Expand All @@ -2637,7 +2637,7 @@ TYPED_TEST(SVSTest, logging_runtime_params) {

VecSimIndex_Free(index);

auto global_log = os_global.view();
auto global_log = os_global.str();
EXPECT_TRUE(global_log.empty()) << "Global log should be empty, but got: " << global_log;
}

Expand Down
Loading