DAOS-1864 build: Components added: mchecksum and isa-l_crypt - #26
Conversation
Added isa-l_crypt component and changed mchecksum component to always be available. Signed-off-by: Ryon Jensen <ryon.jensen@intel.com>
daosbuild1
left a comment
There was a problem hiding this comment.
Style warning(s) for job https://build.hpdd.intel.com/job/daos-stack/job/scons_local/job/PR-26/1/
Please review https://wiki.hpdd.intel.com/display/DC/Coding+Rules
|
Test stage code_lint_check completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/scons_local/view/change-requests/job/PR-26/1/execution/node/183/log |
| './configure --prefix=$ISAL_CRYPTO_PREFIX ' | ||
| '--libdir=$ISAL_CRYPTO_PREFIX/lib', | ||
| 'make $JOBS_OPT', 'make install'], | ||
| required_progs=['nasm', 'yasm'], |
There was a problem hiding this comment.
While nasm and yasm have overlaps in their abilities, depending on the product they can build it differently.
We should determine specifically which one is required.
There was a problem hiding this comment.
The actual requirements is that isa-l looks for nasm >= 2.13 and if nasm fails that test it uses yasm.
There was a problem hiding this comment.
This would be similar to what we do with stdatomic.h for openpa....just adding a configure check though a little more complex since it needs a version as well. Probably similar to what we do with go version
There was a problem hiding this comment.
Ya, I just copied most of isal's definition for isal_crypto. I'll update both to specify the actual requirements better.
There was a problem hiding this comment.
I haven't figured out how to conditionally specify which asm to use based on if yasm or nasm is installed and which versions, but then I started to wonder if the DAOS build should maintain that information or if it should just rely on the isal build to fail if dependencies aren't met?
With required_progs removed and nasm/yasm removed from system isal has a nice error message:
checking for yasm... no
no yasm
checking for nasm... no
no nasm
configure: error: No modern yasm or nasm found as required. Yasm should be 1.2.0 or later, and nasm should be v2.11.01 or later (v2.13 for AVX512).
BuildFailure: isal failed to build:
File "/home/rjensen1/workspace/daos/scons_local/SConstruct", line 53:
scons()
File "/home/rjensen1/workspace/daos/scons_local/SConstruct", line 41:
reqs.require(env, *env.get("REQUIRES"))
File "/home/rjensen1/workspace/daos/scons_local/prereq_tools/base.py", line 1141:
raise error
Better than what DAOS currently provides:
Checking whether nasm program exists...no
MissingSystemLibs: isal has unmet dependancies required for build:
File "/home/rjensen1/workspace/daos/scons_local/SConstruct", line 53:
scons()
File "/home/rjensen1/workspace/daos/scons_local/SConstruct", line 41:
reqs.require(env, *env.get("REQUIRES"))
File "/home/rjensen1/workspace/daos/scons_local/prereq_tools/base.py", line 1141:
raise error
Thoughts?
There was a problem hiding this comment.
yeah you'd probably have to write a custom configure function. For now, relying on the underlying configure to tell you is fine IMO
There was a problem hiding this comment.
we could probably fix that error message to at least provide the name of the dependency that is missing :-)
| 'make $JOBS_OPT', 'make install'], | ||
| libs=['mchecksum'], | ||
| out_of_src_build=True) | ||
| url = "https://github.com/mercury-hpc/mchecksum.git" |
There was a problem hiding this comment.
We don't currently use mchecksum on x86_64. Is something changing?
There was a problem hiding this comment.
I thought we had removed mchecksum. Do we need it? Doesn't isal do the same things?
There was a problem hiding this comment.
I don't think we actually need it, but I was including the component definition here so it was available for a tool I created that benchmarks the different libraries and checksums. I didn't think it would hurt anything having the component defined here if it isn't included in the required prereqs in the Sconscript for the daos libraries. But I can easily remove it if it makes things too convoluted.
There was a problem hiding this comment.
If it's only used by your tool, you can add a define in your SConstruct (see daos SConstruct line 47-48 which define cmocka and readline). But there is probably no harm in having it here either.
| 'make $JOBS_OPT', 'make install'], | ||
| libs=['mchecksum'], | ||
| out_of_src_build=True) | ||
| url = "https://github.com/mercury-hpc/mchecksum.git" |
There was a problem hiding this comment.
I thought we had removed mchecksum. Do we need it? Doesn't isal do the same things?
| './configure --prefix=$ISAL_CRYPTO_PREFIX ' | ||
| '--libdir=$ISAL_CRYPTO_PREFIX/lib', | ||
| 'make $JOBS_OPT', 'make install'], | ||
| required_progs=['nasm', 'yasm'], |
There was a problem hiding this comment.
This would be similar to what we do with stdatomic.h for openpa....just adding a configure check though a little more complex since it needs a version as well. Probably similar to what we do with go version
…to ryon-jensen/DAOS-1864
| 'make install'], libs=['opa'], | ||
| package='openpa-devel' if inst(reqs, 'openpa') else None) | ||
|
|
||
| if ARM_PLATFORM: |
There was a problem hiding this comment.
I'm including mchecksum on the DAOS side for a checksum timing util. I didn't think it was needed elsewhere, but I guess I'm not 100% sure. @vvenkates27 ??
There was a problem hiding this comment.
mchecksum is not needed for ARM anymore as ISA-L started supporting ARM. I actually had a patch locally to remove the requirement for using mchecksum in the checksum library for ARM . So I think we can ignore my patch #22, as this patch seems to do the same as well.
|
I think this is overlapping with #22 |
I think we can ignore my patch as this is doing the same. |
vvenkates27
left a comment
There was a problem hiding this comment.
I am ok with these changes, I think we need to merge another patch in DAOS I had to remove dependency of mchecksum in ARM for daos checksum library.
Added isa-l_crypt component and changed mchecksum component to
always be available.
Signed-off-by: Ryon Jensen ryon.jensen@intel.com