Skip to content

cmake: add WITH_SYSTEM_BLAKE3 and WITH_SYSTEM_XXHASH#58310

Closed
cbodley wants to merge 8 commits intoceph:mainfrom
cbodley:wip-rgw-cksum-cmake
Closed

cmake: add WITH_SYSTEM_BLAKE3 and WITH_SYSTEM_XXHASH#58310
cbodley wants to merge 8 commits intoceph:mainfrom
cbodley:wip-rgw-cksum-cmake

Conversation

@cbodley
Copy link
Copy Markdown
Contributor

@cbodley cbodley commented Jun 27, 2024

based on #55076 #58429 for now

centos 9 and fedora have up-to-date blake3-devel and xxhash-devel packages. adds cmake options WITH_SYSTEM_BLAKE3/XXHASH (off by default) to build against those packages instead of their submodules. ceph.spec.in adds those rpm dependencies and tells cmake to use them

Show available Jenkins commands
  • jenkins retest this please
  • jenkins test classic perf
  • jenkins test crimson perf
  • jenkins test signed
  • jenkins test make check
  • jenkins test make check arm64
  • jenkins test submodules
  • jenkins test dashboard
  • jenkins test dashboard cephadm
  • jenkins test api
  • jenkins test docs
  • jenkins render docs
  • jenkins test ceph-volume all
  • jenkins test ceph-volume tox
  • jenkins test windows
  • jenkins test rook e2e

@github-actions
Copy link
Copy Markdown

This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved

@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Jul 4, 2024

https://jenkins.ceph.com/job/ceph-pull-requests/138269/

CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
  "rgw_common" of type STATIC_LIBRARY
    depends on "dbstore" (weak)
    depends on "dbstore_lib" (weak)
    depends on "sqlite_db" (weak)
  "dbstore_lib" of type SHARED_LIBRARY
    depends on "rgw_common" (weak)
    depends on "dbstore" (weak)
    depends on "sqlite_db" (weak)
  "dbstore" of type STATIC_LIBRARY
    depends on "dbstore_lib" (weak)
    depends on "rgw_common" (weak)
    depends on "sqlite_db" (weak)
  "sqlite_db" of type STATIC_LIBRARY
    depends on "dbstore_lib" (weak)
    depends on "rgw_common" (weak)
    depends on "dbstore" (weak)
    depends on "dbstore_lib" (strong)
At least one of these targets is not a STATIC_LIBRARY.  Cyclic dependencies are allowed only among static libraries.

@cbodley cbodley force-pushed the wip-rgw-cksum-cmake branch from f8e6942 to 1e161f0 Compare July 4, 2024 18:53
@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Jul 4, 2024

CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):

bisected to commit "cmake: use xxHash's unofficial cmake support". no idea why 🤷 but i've added a commit that changes dbstore_lib to a static library as a workaround

@cbodley cbodley force-pushed the wip-rgw-cksum-cmake branch 2 times, most recently from 9ce7c1f to 13e994f Compare July 11, 2024 19:06
@cbodley cbodley force-pushed the wip-rgw-cksum-cmake branch 12 times, most recently from 8f53137 to d2c50ec Compare July 13, 2024 15:50
cbodley added 8 commits July 24, 2024 13:40
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
cmake complains about cyclical dependencies in dbstore:
```
CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):
  "rgw_common" of type STATIC_LIBRARY
    depends on "dbstore" (weak)
    depends on "dbstore_lib" (weak)
    depends on "sqlite_db" (weak)
  "dbstore_lib" of type SHARED_LIBRARY
    depends on "rgw_common" (weak)
    depends on "dbstore" (weak)
    depends on "sqlite_db" (weak)
  "dbstore" of type STATIC_LIBRARY
    depends on "dbstore_lib" (weak)
    depends on "rgw_common" (weak)
    depends on "sqlite_db" (weak)
  "sqlite_db" of type STATIC_LIBRARY
    depends on "dbstore_lib" (weak)
    depends on "rgw_common" (weak)
    depends on "dbstore" (weak)
    depends on "dbstore_lib" (strong)
At least one of these targets is not a STATIC_LIBRARY.  Cyclic dependencies are allowed only among static libraries.
```

as dbstore_lib is the only shared library in this cycle, make it static

Signed-off-by: Casey Bodley <cbodley@redhat.com>
store_test_fixture.cc includes and depends on BlueStore

ceph_test_objectstore links to store_test_fixture to pick up this
transitive dependency

Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
make global a PUBLIC dependency, and remove global from all targets that
depend on rgw_common. this gets the xxhash dependency into tests like
unittest_rgw_cksum

Signed-off-by: Casey Bodley <cbodley@redhat.com>
@cbodley cbodley force-pushed the wip-rgw-cksum-cmake branch from d2c50ec to da5001a Compare July 24, 2024 17:40
@github-actions
Copy link
Copy Markdown

This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days.
If you are a maintainer or core committer, please follow-up on this pull request to identify what steps should be taken by the author to move this proposed change forward.
If you are the author of this pull request, thank you for your proposed contribution. If you believe this change is still appropriate, please ensure that any feedback has been addressed and ask for a code review.

@github-actions github-actions bot added the stale label Sep 22, 2024
@github-actions
Copy link
Copy Markdown

This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution!

@github-actions github-actions bot closed this Oct 22, 2024
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.

1 participant