Skip to content

Conversation

@sassy-crick
Copy link
Collaborator

@sassy-crick sassy-crick commented Oct 29, 2025

(created using eb --new-pr)

Added the build of the dynamic libraries which are needed for some software packages, and added the one test job they provide.
Happy to backport to the already existing EC if required.

@Thyre
Copy link
Collaborator

Thyre commented Oct 29, 2025

The build of shared libraries was added in #24310, but enabling the tests is probably a good idea.

We shouldn't remove building with PIC though, as this can cause issues when using the library later on.

@Thyre Thyre added the 2025b issues & PRs related to 2025b common toolchains label Oct 29, 2025
@sassy-crick sassy-crick changed the title Dynamic library build and test job added {lib}[GCCcore-14.3.0] spdlog-1.15.3 Oct 29, 2025
@sassy-crick sassy-crick changed the title {lib}[GCCcore-14.3.0] spdlog-1.15.3 {lib}[GCCcore/14.3.0] spdlog-1.15.3 Oct 29, 2025
@sassy-crick
Copy link
Collaborator Author

The build of shared libraries was added in #24310, but enabling the tests is probably a good idea.

We shouldn't remove building with PIC though, as this can cause issues when using the library later on.

Ah, that PR has slipped through when I was working on that. I agree with the PIC, I will update that.

@sassy-crick
Copy link
Collaborator Author

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@sassy-crick: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24391 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24391 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8572

Test results coming soon (I hope)...

- notification for comment with ID 3460840222 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/649dec7ed4efeeac3d9a39b663aa6207 for a full test report.

@sassy-crick
Copy link
Collaborator Author

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@sassy-crick: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24391 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24391 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8575

Test results coming soon (I hope)...

- notification for comment with ID 3460993457 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/7ad4fe7f0338c13fb9ced4b12bd5b382 for a full test report.

@Thyre
Copy link
Collaborator

Thyre commented Oct 29, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jrc0901.jureca - Linux Rocky Linux 9.6, AArch64, ARM UNKNOWN (neoverse_v2), 1 x NVIDIA NVIDIA GH200 480GB, 580.95.05, Python 3.9.21
See https://gist.github.com/Thyre/c53911f5315564afd35df448131061d2 for a full test report.

@Thyre
Copy link
Collaborator

Thyre commented Oct 29, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
ZAM054 - Linux Zorin OS 18, x86_64, 12th Gen Intel(R) Core(TM) i7-1260P (skylake), 1 x NVIDIA NVIDIA GeForce MX550, 580.95.05, Python 3.12.3
See https://gist.github.com/Thyre/a63144ff3b6977e63ddb675fc9f9a614 for a full test report.

@Crivella
Copy link
Contributor

Test report by @Crivella
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
crivella-desktop - Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish), x86_64, 13th Gen Intel(R) Core(TM) i9-13900K (skylake), Python 3.11.13
See https://gist.github.com/Crivella/cda51d350fca9c6cdf4ba28e4a625c5b for a full test report.

Comment on lines 20 to 22
_shared_configopts = " ".join([
"-DSPDLOG_BUILD_SHARED=ON",
"-DSPDLOG_BUILD_PIC=ON",
])
_base_configopts = ' -DSPDLOG_BUILD_TESTS=ON'
configopts = [f'{_base_configopts} -DSPDLOG_BUILD_SHARED={x}' for x in ('OFF', 'ON')]
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 we want to remove SPDLOG_BUILD_PIC=ON

Copy link
Contributor

Choose a reason for hiding this comment

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

It is doing what we are already doing in the CMake EB when setting the fpic TC option to true

https://github.com/gabime/spdlog/blob/486b55554f11c9cccc913e11a87085b2a91f706f/CMakeLists.txt#L149-L151

But i would still leave it there to ensure that we follow what the source CMake dictates in case they add more stuff in the future

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I was not aware of the other PR so mine was based on a different 'template' and thus, I did not remove it, I simply never added it. I have put that back, thanks for finding this!

Comment on lines 26 to 28
sanity_check_paths = {
'files': ['include/%(name)s/%(name)s.h', 'lib/lib%(name)s.a', f'lib/lib%(name)s.{SHLIB_EXT}'],
'files': [f'include/{name}/{name}.h', 'lib/libspdlog.a', 'lib/libspdlog.%s' % SHLIB_EXT],
'dirs': ['lib64/cmake', 'lib64/pkgconfig'],
Copy link
Contributor

Choose a reason for hiding this comment

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

Would keep consistent usage of f-strings without re-introducing old % formatting.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Well, I done my PR without being aware of what you already done @Crivella . So that is why I had already the f-string for the bit I knew how to do it, but I was not sure how to do it for the SHLIB_EXT bit. So now that is consistent, thanks fo your help.


sanity_check_paths = {
'files': ['include/%(name)s/%(name)s.h', 'lib/lib%(name)s.a', f'lib/lib%(name)s.{SHLIB_EXT}'],
'files': [f'include/{name}/{name}.h', 'lib/libspdlog.a', 'lib/libspdlog.%s' % SHLIB_EXT],
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
'files': [f'include/{name}/{name}.h', 'lib/libspdlog.a', 'lib/libspdlog.%s' % SHLIB_EXT],
'files': ['include/%(name)s/%(name)s.h', 'lib/lib%(name)s.a', f'lib/lib%(name)s.{SHLIB_EXT}'],
  • %(name)s are EB templates. I do not expect it to ever be different from name in the EC but i would keep it as such w.r.t other ECs
  • SHLIB_EXT is also an EB variable that will be injected in the EC. with python linting it appears undefined but it will be replaced when the EC is loaded

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

My understanding was the %(foo)s is better replaced with f'{foo}' as it is easier to read. Did I get that wrong?

Copy link
Contributor

@Crivella Crivella Oct 29, 2025

Choose a reason for hiding this comment

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

They are not equivalent. What i was referring to is the % used to place SHLIB_EXT in the string.

%(name)s is not a string formatting but an EB template that is replaced by EB when reading the EasyConfig.

The ones under https://docs.easybuild.io/version-specific/easyconfig-templates/#template-namesvalues-as-set-in-easyconfig are probably the only trivial ones that will be equivalent to the value in the EC

EDIT: for context we already have some {name} in EB but templates are the majority

(easybuild-dev) crivella@crivella-desktop:~/Documents/GIT/easybuild-easyconfigs $ grep -l -R '{name}' * | wc -l
124
(easybuild-dev) crivella@crivella-desktop:~/Documents/GIT/easybuild-easyconfigs $ grep -l -R '%(name)s' * | wc -l
2249

@Crivella
Copy link
Contributor

Test report by @Crivella
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
crivella-desktop - Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish), x86_64, 13th Gen Intel(R) Core(TM) i9-13900K (skylake), Python 3.11.13
See https://gist.github.com/Crivella/fd0f59573ee93082e6c2dc4924b45bef for a full test report.

Copy link
Contributor

@Crivella Crivella left a comment

Choose a reason for hiding this comment

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

LGTM

@Crivella Crivella added this to the next release (5.2.0?) milestone Oct 29, 2025
@Crivella Crivella removed the change label Oct 29, 2025
@Crivella
Copy link
Contributor

Going in, thanks @sassy-crick!

@Crivella Crivella merged commit 098029d into easybuilders:develop Oct 29, 2025
8 checks passed
Crivella added a commit to Crivella/easybuild-easyconfigs that referenced this pull request Oct 29, 2025
@sassy-crick sassy-crick deleted the 20251029095129_new_pr_spdlog1153 branch October 29, 2025 18:09
Micket added a commit that referenced this pull request Oct 29, 2025
`spdlog` apply changes from #24391 to all versions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2025b issues & PRs related to 2025b common toolchains ready-to-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants