Commit Graph

9 Commits

Author SHA1 Message Date
Kefu Chai
625f6baeb0 cmake/BuildISAL: build and install library targets only
Skip building the igzip executables; Ceph only needs libisal.la.
This should speed up the build a little bit, as we don't build the
executables previous built with "make"

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
2026-05-17 20:13:00 +08:00
Jamie Pryde
91e97bf3d1
Merge pull request #68711 from jamiepryde/isal-arm-build-typo
cmake: Fix ISA-L build on arm
2026-05-08 14:52:54 +01:00
Kefu Chai
03bed028a9
Merge pull request #68404 from ifed01/wip-fix-isal-build
cmake/isal-l: explicitly configure libdir to avoid wrong libisal.a

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2026-05-06 20:47:30 +08:00
Jamie Pryde
5bf5bc69dd cmake: Fix ISA-L build on arm
A typo in CFLAGS means we're passing an empty string to configure_cmd.
We are then overwriting the build environment CFLAGS with our empty string CFLAGS,
which can result in build failures in certain environments, as seen in the tracker.
This fix gets any build environment CFLAGS and appends the other flags
we want to use when building ISA-L 2.32.0

Fixes: https://tracker.ceph.com/issues/76389

Signed-off-by: Jamie Pryde <jamiepry@uk.ibm.com>
2026-05-06 11:58:06 +01:00
Igor Fedotov
679f93818a cmake/isal-l: explicitly configure libdir to avoid wrong libisal.a
location.

This is to fix the following libec_isa.si build error :

FAILED: lib/libec_isa.so
: && /usr/bin/g++-14 -fPIC -O3 -DNDEBUG
-Wl,--dependency-file=src/erasure-code/isa/CMakeFiles/ec_isa.dir/link.d
-shared -Wl,-soname,libec_isa.so -o lib/libec_isa.so
src/erasure-code/CMakeFiles/erasure_code_objs.dir/ErasureCode.cc.o
src/erasure-code/isa/CMakeFiles/ec_isa.dir/ErasureCodeIsa.cc.o
src/erasure-code/isa/CMakeFiles/ec_isa.dir/ErasureCodeIsaTableCache.cc.o
src/erasure-code/isa/CMakeFiles/ec_isa.dir/ErasureCodePluginIsa.cc.o
src/isa-l/install/lib/libisal.a  -ldl  /usr/lib64/librt.a  -lresolv
-Wl,--as-needed -latomic && :
/usr/lib64/gcc/x86_64-suse-linux/14/../../../../x86_64-suse-linux/bin/ld:
cannot find src/isa-l/install/lib/libisal.a: No such file or directory
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

It looks like [under some circumstances?] the building procedure puts
resulting .a under src/isa-l/install/lib64 path which causes lookup
error .so linkage.

This patch enforces lib64 usage.

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
2026-04-16 00:35:13 +03:00
Jamie Pryde
6930c42600 cmake: Add support for SVE instructions in ISA-L on aarch64
ISA-L 2.31.0 introduced new EC functions that use SVE instructions on aarch64.
This means that the assembler must support SVE instructions
to build for aarch64. This commit passes `-Wa,-march=armv8-a+sve` to the ISA-L
configure step so the external assembler can process the new .S and .c files.

Signed-off-by: Jamie Pryde <jamiepry@uk.ibm.com>
2026-03-12 15:05:26 +00:00
Matan Breizman
56c37d7035 cmake/modules/BuildISAL.cmake: set no-integrated-as on clang only
this option is only relevant to clang, gcc will fail with:
```
CMake Error at ceph/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-configure-Debug-impl.cmake:19 (message):
  Command failed (77):

   'env' 'CC=/usr/bin/gcc-11' './configure' '--prefix=ceph/build/src/isa-l/install' '--with-pic' '--enable-static' '--disable-shared' 'CFLAGS=-no-integrated-as'
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2025-03-02 08:48:31 +00:00
Matan Breizman
0ceefb407d cmake/modules/BuildISAL.cmake: use GNU assembler
avoid the following error by disabling clang assembler:
```
[670/2691] Performing build step for 'isal_ext'
FAILED: src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-build src/isa-l/install/lib/libisal.a /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-build /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/build/src/isa-l/install/lib/libisal.a
cd /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/src/isa-l && /usr/bin/cmake -P /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-build-Debug.cmake && /usr/bin/cmake -E touch /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-build
CMake Error at /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-build-Debug.cmake:37 (message):
  Command failed: 2

   '/usr/bin/cmake' '-E' 'env' '--unset=DESTDIR' 'make' '-j3'

  See also

    /home/jenkins-build/build/workspace/ceph-pull-requests-arm64/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-build.log

-- Log output is:
...skipping to end...
hile in macro instantiation
crc64_refl_func crc64_ecma_refl_pmull
^
<instantiation>:2:26: error: unexpected token in argument list
 movk x7, p1_low_b1, lsl 16
                         ^
<instantiation>:54:2: note: while in macro instantiation
 crc64_fold_512b_to_128b
 ^
crc/aarch64/crc64_ecma_refl_pmull.S:33:1: note: while in macro instantiation
crc64_refl_func crc64_ecma_refl_pmull
^
<instantiation>:3:26: error: unexpected token in argument list
 movk x7, p1_low_b2, lsl 32
                         ^
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2025-02-24 16:02:08 +00:00
Casey Bodley
926ef939e7 cmake/ec: use ExternalProject to build isal library
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2024-09-05 13:19:23 -04:00