Skip to content

[xxhash] download instead of bundle and bump from 0.8.0 to 0.8.3#21806

Open
ferdymercury wants to merge 3 commits intoroot-project:masterfrom
ferdymercury:xxh
Open

[xxhash] download instead of bundle and bump from 0.8.0 to 0.8.3#21806
ferdymercury wants to merge 3 commits intoroot-project:masterfrom
ferdymercury:xxh

Conversation

@ferdymercury
Copy link
Copy Markdown
Collaborator

@ferdymercury ferdymercury commented Apr 7, 2026

following xrootd structure

@ferdymercury ferdymercury changed the title [skip-ci,builtins] download instead of bundle xxhash [builtins] download instead of bundle xxhash Apr 7, 2026
@dpiparo dpiparo self-assigned this Apr 7, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 2026

Test Results

    22 files      22 suites   3d 7h 33m 25s ⏱️
 3 833 tests  3 832 ✅  1 💤 0 ❌
75 650 runs  75 632 ✅ 18 💤 0 ❌

Results for commit 7c3641d.

♻️ This comment has been updated with latest results.

@ferdymercury ferdymercury force-pushed the xxh branch 2 times, most recently from e0dd829 to 29d679c Compare April 7, 2026 13:31
@ferdymercury ferdymercury changed the title [builtins] download instead of bundle xxhash [builtins] download instead of bundle xxhash and bump from 0.8.0 to 0.8.3 Apr 7, 2026
Comment thread builtins/xxhash/CMakeLists.txt Outdated
Comment thread builtins/xxhash/CMakeLists.txt
Comment thread builtins/xxhash/CMakeLists.txt Outdated
Comment thread builtins/xxhash/CMakeLists.txt
@dpiparo
Copy link
Copy Markdown
Member

dpiparo commented Apr 10, 2026

thanks. I propose to also add builtin_xxhash to https://github.com/root-project/root/blob/master/.github/workflows/root-ci-config/buildconfig/alma10-clang_ninja.txt in order to test the changes on linux w/o resorting to the system library.

@ferdymercury ferdymercury added the clean build Ask CI to do non-incremental build on PR label Apr 12, 2026
@ferdymercury ferdymercury removed the clean build Ask CI to do non-incremental build on PR label Apr 12, 2026
Comment thread builtins/xxhash/CMakeLists.txt
Comment thread core/lz4/CMakeLists.txt Outdated
Comment thread cmake/modules/SearchInstalledSoftware.cmake
Comment thread core/lz4/CMakeLists.txt Outdated
@guitargeek
Copy link
Copy Markdown
Contributor

@ferdymercury, this PR has conflicts now that need to be resolved

Comment thread builtins/xxhash/CMakeLists.txt Outdated
add CMakeLists patch

rm bundled copy

move to LCG

thanks to dpiparo

Mimick other compression builtins

find required dep, too

[builtins] use URL variable

[cmake] use https lcg url

[cmake] simplify dependency check

matches 6.40 release notes and openssl behavior

[cmake] simplify check

[core] rm duplicate find_package

[xxhash] simplify

Co-authored-by: ferdymercury <ferdymercury@users.noreply.github.com>
to check no conflicts with system library
as suggested by dpiparo
@ferdymercury ferdymercury changed the title [builtins] download instead of bundle xxhash and bump from 0.8.0 to 0.8.3 [xxhash] download instead of bundle and bump from 0.8.0 to 0.8.3 Apr 16, 2026
Copy link
Copy Markdown
Member

@hageboeck hageboeck left a comment

Choose a reason for hiding this comment

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

It looks good, but we need to decide if xxHash should become a "required and easy to obtain" dependency.

Comment on lines +10 to +11
+target_include_directories(xxhash PUBLIC ./)
+add_library(xxHash::xxHash ALIAS xxhash)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Presumably not needed, since it doesn't get installed.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

but this line is what allows later to call things such as:

target_link_libraries(Core PRIVATE xxHash::xxHash)

without having to take care of target-including directories?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

or you mean rather line 12 is not needed?

endif()
endif()

ROOT_FIND_REQUIRED_DEP(xxHash builtin_xxhash)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If you use this macro down here, the absence of xxHash will not be listed in the "in order to build, all of the following need to be installed: ..."

So far, I think it wasn't decided that xxHash is a "required and easy" dependency, was it @dpiparo ? If it is, then I would suggest to move this line up to where the others are, such that ROOT can quickly detect the absence of required packages and try to give a helpful message about it.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Thanks. Maybe it's better to move

if(NOT "${MISSING_PACKAGES}" STREQUAL "")
  message(FATAL_ERROR "The following packages need to be installed or enabled to build ROOT: ${MISSING_PACKAGES}")
endif()

further down? So that it collects all ?

Or alternatively, to reset the variable at that point, and accumulate again and print it again below. This would be like synchronization points. First image libraries. If you fix those, then the compression libraries. ETc.

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.

5 participants