Hi everyone,
I'm encountering a linker problem when using the latest versions (2025.0) of either oneAPI Base Toolkit or oneAPI HPC Toolkit.
Coding a rudimentary C++ project with the linker flag '-ipp=common' yields an icpx linker error ("cannot find -lippch").
While both toolkits contain files like "libippch.so" within the ipp directory in their respective 2024.2 versions, the 2025.0 versions lack similar files, causing the linker command to fail.
Has libippch been deprecated and if so, how would ipp's linker flag have to be modified accordingly?
I was using Intel(R) oneAPI DPC++/C++ Compiler 2025.0.1 (2025.0.1.20241113).
Can you try the latest compiler https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
链接已复制
Intel® IPP char domain is dropped in oneAPI 2025.0. Please check the IPP release notes here: https://www.intel.com/content/www/us/en/developer/articles/release-notes/release-notes-for-oneapi-integrated-performance-primitives.html#inpage-nav-2
For the link error, can you help provide us a simple reproducer? We will investigate and back to here once there is any update.
Tried oneAPI 2025 package with command line(icpx test.cpp -ipp=common -v) in my end, didn't reproduce the linkage error for finding libippch, only correctly link to -lippcv -lippcc -lippdc -lippe -lippi -lipps -lippvm -lippcore
"/usr/bin/ld" -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/11/crtbeginS.o -L/opt/intel/oneapi/compiler/2025.0/bin/compiler/../../lib -L/opt/intel/oneapi/compiler/2025.0/bin/compiler/../../lib -L/opt/intel/oneapi/ipp/2022.0/lib -L/opt/intel/oneapi/compiler/2025.0/lib/clang/19/lib/x86_64-unknown-linux-gnu -L/opt/intel/oneapi/compiler/2025.0/bin/compiler/../../lib -L/usr/lib/gcc/x86_64-linux-gnu/11 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-linux-gnu/11/../../.. -L/opt/intel/oneapi/compiler/2025.0/bin/compiler/../../lib -L/opt/intel/oneapi/compiler/2025.0/bin/compiler/../../opt/compiler/lib -L/lib -L/usr/lib -L/opt/intel/oneapi/vpl/2023.0.0/lib -L/opt/intel/oneapi/tcm/1.2/lib -L/opt/intel/oneapi/umf/0.9/lib -L/opt/intel/oneapi/tbb/2022.0/env/../lib/intel64/gcc4.8 -L/opt/intel/oneapi/pti/0.10/lib -L/opt/intel/oneapi/mpi/2021.14/lib -L/opt/intel/oneapi/mkl/2025.0/lib -L/opt/intel/oneapi/ippcp/2025.0/lib/ -L/opt/intel/oneapi/ipp/2022.0/lib -L/opt/intel/oneapi/dnnl/2025.0/lib -L/opt/intel/oneapi/dal/2025.0/lib -L/opt/intel/oneapi/compiler/2025.0/lib -L/opt/intel/oneapi/clck/2021.7.3/lib/intel64 -L/opt/intel/oneapi/ccl/2021.14/lib/ /tmp/icpx-cd13041d67/test-5d787f.o -Bstatic -lippcv -lippcc -lippdc -lippe -lippi -lipps -lippvm -lippcore -Bdynamic -Bstatic -lsvml -Bdynamic -Bstatic -lirng -Bdynamic -lstdc++ -Bstatic -limf -Bdynamic -lm -lgcc_s -lgcc -Bstatic -lirc -Bdynamic -ldl -lgcc_s -lgcc -lc -lgcc_s -lgcc -Bstatic -lirc_s -Bdynamic /usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o /lib/x86_64-linux-gnu/crtn.o
Appreciate your feedback! I'm compiling my test program in the exact same way, also correctly linking -lippcv, -lippcc, -lippdc, -lippe, lippi, -lipps, -lippvm and -lippcore. Unfortunately, icpx seems to be additionally generating the -lippch flag as soon as I set the 'ipp=common' option.
My test program square.cpp contains:
#include <iostream>
using namespace std;
int main(){
const uint32_t cSize = 5;
cout << "My number = " << cSize << endl;
return 0;
}
For context: I'm running "icpx square.cpp -ipp=common -v" on RHEL 9.2, which then produces the linker error. I'm further using an offline installation of intel oneAPI (Intel(R) oneAPI DPC++/C++ Compiler 2025.0.0 (2025.0.0.20241008).
Unlike your shared output snippet, I retain the -lippch flag for some reason:
"/usr/bin/ld" --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/11/crtbegin.o -L/opt/blub/intel-hpc/compiler/2025.0/bin/compiler/../../lib -L/opt/blub/intel-hpc/compiler/2025.0/bin/compiler/../../lib -L/opt/blub/intel-hpc/ipp/2022.0/lib -L/opt/blub/intel-hpc/compiler/2025.0/lib/clang/19/lib/x86_64-unknown-linux-gnu -L/opt/blub/intel-hpc/compiler/2025.0/bin/compiler/../../lib -L/usr/lib/gcc/x86_64-redhat-linux/11 -L/usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/11/../../.. -L/opt/blub/intel-hpc/compiler/2025.0/bin/compiler/../../lib -L/opt/blub/intel-hpc/compiler/2025.0/bin/compiler/../../opt/compiler/lib -L/lib -L/usr/lib -L/opt/blub/intel-hpc/ipp/2022.0/lib/intel64 -L/opt/blub/intel-hpc/compiler/2025.0/lib /tmp/icpx-816125fc97/square-008872.o -Bstatic -lippcv -lippch -lippcc -lippdc -lippe -lippi -lipps -lippvm -lippcore -Bdynamic -Bstatic -lsvml -Bdynamic -Bstatic -lirng -Bdynamic -lstdc++ -Bstatic -limf -Bdynamic -lm -lgcc_s -lgcc -Bstatic -lirc -Bdynamic -ldl -lgcc_s -lgcc -lc -lgcc_s -lgcc -Bstatic -lirc_s -Bdynamic /usr/lib/gcc/x86_64-redhat-linux/11/crtend.o /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/crtn.o
I was using Intel(R) oneAPI DPC++/C++ Compiler 2025.0.1 (2025.0.1.20241113).
Can you try the latest compiler https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
