You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've encountered 2 problems using the Intel OneAPI compilers. The first one I have the fix for but the second is more complex.
Problem 1 (Bootstrap):
Running bootstrap.sh with the intel-linux tool set insists on linking the application statically. Many OS do not include static libm.a, libdl.a and libc.a libraries but they do exist as shared libraries (*.so files). The other tool sets (GCC, etc.) do not impose this static requirement.
Remove the "-static" flag from the intel-linux compiler flags at line ~334 of "tools/build/src/engine/build.sh" and b2 will build properly.
Problem 2 (Building Boost):
Running ./b2 appears to overwrite the system environment variables when building Boost to the incorrect locations.
Linux Terminal Commands to Reproduce (after b2 correctly built as above):
> cd boost_1_76_0
> ./b2
icpx: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/tools/intel-linux.jam:185: in intel-linux.init
*** argument error
* rule numbers.less ( n1 n2 )
* called with: ( 10 )
* missing argument n2
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/util/numbers.jam:66:see definition of rule 'numbers.less' being called
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/build/toolset.jam:44: in toolset.using
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/build/project.jam:1104: in using
project-config.jam:12: in modules.load
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/build-system.jam:255: in load-config
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/build-system.jam:486: in load-configuration-files
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/build-system.jam:607: in load
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/kernel/modules.jam:295: in import
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/tools/build/src/kernel/bootstrap.jam:139: in boost-build
/home/bflynt/opt/modman/build/boost/1.76.0/oneapi/2021.3.0/boost-build.jam:17: in module scope
The missing library (libimf.so) exists within the first directory pointed at by the LD_LIBRARY_PATH environment variable. So it appears boost is overwriting the LD_LIBRARY_PATH environment variable when running ./b2
I've encountered 2 problems using the Intel OneAPI compilers. The first one I have the fix for but the second is more complex.
Problem 1 (Bootstrap):
Running bootstrap.sh with the intel-linux tool set insists on linking the application statically. Many OS do not include static libm.a, libdl.a and libc.a libraries but they do exist as shared libraries (*.so files). The other tool sets (GCC, etc.) do not impose this static requirement.
Linux Terminal Commands to Reproduce:
The Fix:
Remove the "-static" flag from the intel-linux compiler flags at line ~334 of "tools/build/src/engine/build.sh" and b2 will build properly.
Problem 2 (Building Boost):
Running ./b2 appears to overwrite the system environment variables when building Boost to the incorrect locations.
Linux Terminal Commands to Reproduce (after b2 correctly built as above):
The missing library (libimf.so) exists within the first directory pointed at by the LD_LIBRARY_PATH environment variable. So it appears boost is overwriting the LD_LIBRARY_PATH environment variable when running ./b2
The text was updated successfully, but these errors were encountered: