How to set MKL on Linux with Cmake - c++

I've used the same code provided in this link
How to setup MKL on linux with CMake
But i'm getting this error
Could NOT find MKL (missing: MKL_LIBRARIES MKL_INCLUDE_DIRS
I've tried to set MKLROOT to the following
SET(ENV{MKLROOT} "/home/usr/intel/mkl:$ENV{MKLROOT}")
This is how findmkl.cmake module looks like without the line of code to set the environment for mklroot (i've used the same code in the link below)
https://gist.github.com/scivision/5108cf6ab1515f581a84cd9ad1ef72aa
i suspect the issue is setting the mklroot but not sure, any help is appreciated.

If MKLROOT is initially unset, the statement SET(ENV{MKLROOT} "/home/usr/intel/mkl:$ENV{MKLROOT}") sets MKLROOT equal to /home/usr/intel/mkl:, which is an incorrect format for the path. Instead, you could use
set(ENV{MKLROOT} "/home/usr/intel/mkl")
Alternatively, you can set the value of that environment variable externally, e.g.,
source /home/usr/intel/bin/compilervars.sh intel64
and then run CMake. In that case, there is no need for the CMake set statement, which is a more portable solution.
UPDATE: As of 20th Feb 2021 compilervars.sh is not provided within Intel MKL and the environment should be set with the following command:
source /opt/intel/oneapi/setvars.sh intel64
or wherever oneAPI is installed.

Related

Is the scylladb build hardcoded to work only with gnu gcc?

The python configure.py contains a line
gcc_linker_output = subprocess.check_output(['gcc', '-###', '/dev/null', '-o', 't'], stderr=subprocess.STDOUT).decode('utf-8')
The comments before this line indicate scylladb uses a custom dynamic linker and references details about the ABI layout.
Is there code missing from the configure.py script which would enable building on a strict llvm environment, or is that not possible at this time?
I am building Scylladb on FreeBSD 13 which uses clang++ 13.0.0.
I am on branch master, commit 0efdc45d5981868b1b6, Setp 8, 2022.
I patched SCYLLA-VERSION-GEN to get past the date --utf and USAGE issues, and patched config.py with an entry to read ID from freebsd for the boost error message.
I run configure.py with
./configure.py --mode=release --compiler=clang++ --cflags=-I/usr/local/include
In fact ScyllaDB builds with clang. However its dependency Seastar is very dependent on Linux. If you want it to run on FreeBSD you'll have to port Seastar first (see reactor_backend.{cc,hh})

can't compile or-tools examples on Mac due to "make: *** No rule to make target `run'."

I have installed Google's or-tools on my Mac running 11.1 (Big Sur). When I run make test_cc, I get a long list with different results and also some messenges like ---- Integer programming example with CPLEX ---- Supports for solver CPLEX not linked in.
However, if I try an example from https://developers.google.com/optimization/introduction/cpp, I get the above error (see header) when trying to make and run the program (I have copy pasted the complete program). I have executed the make command with
Death-Star:or-tools me$ make run SOURCE=../Routing/Routing/main.cpp. ls ../Routing/Routing/main.cpp shows the file.
What have I done wrong?
or-tools version is 8.1.8487

Build CEF on Windows 10

The compilation of the CEF in Windows 10 until now has been a week of work and various remediation. Now it seems that I am at the last steps of the compilation but I have a problem not yet solved, Ninja fails at
[30545/36949] ACTION //tools/v8_context_snapshot:gener..._context_snapshot(//build/toolchain/win:win_clang_x86)
FAILED: v8_context_snapshot.bin
C:/code/depot_tools/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe ../../build/gn_run_binary.py ./v8_context_snapshot_generator --output_file=v8_context_snapshot.bin
[1203/185351.657:FATAL:com_init_check_hook.cc(159)] Check failed: false. CoCreateInstance appears to be previously patched. <cc cc cc cc cc e9 2b> Attempted to write <e9 80 2f d6 91 eb f9>
My enviroment Windows10, VS 2017 v 15.9.28, Win 10.0.17763 SDK and Ninja.
Does anyone know what it can be?
Thank you very much kind regards
I was finally able to compile CEF with .mp4 support for the chosen version v75. I share with you all the steps necessary to compile in the windows environment.
What's Required for branch 3770 --> Chromium Version v 75.
Win 7+, VS2017 15.7.1+, Win 10.0.17763 SDK, Ninja, at least 8GB of RAM and 40GB of free disk space. Need particular attention to the SDK version, installed it separately and not with Visual Studio, moreover it must necessarily be the one indicated, if there are later versions uninstall them completely.
Install the required Visual Studio sub-components by passing the following arguments to the Visual Studio installer:
$ PATH_TO_INSTALLER.EXE ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Component.VC.ATLMFC ^
--includeRecommended
See https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md#markdown-header-current-release-branches-supported.
For Download and correct build step by step see:https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart
This procedure as it is only the download of the Master proceeds,
If you want to compile a specific branch, compile the path where to download it and modify the update.bat file accordingly.
Set all necessary enviroment variable and restart the PC before all:
Variable CEF_USE_GN value CEF_USE_GN=1
Variable GN_DEFINES value Set GN_DEFINES=proprietary_codecs=1 ffmpeg_branding=Chrome
Variable Path add value of C:\code\depot_tools your path for folder depot_tools.
Variable DEPOT_TOOLS_WIN_TOOLCHAIN valore DEPOT_TOOLS_WIN_TOOLCHAIN=0.
For example for the 3770 branch
build the path C: \ code \ chromium_git3770
and write in update.bat like:
set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=C:\code\chromium_git3770 --depot-tools-dir=C:\code\depot_tools --branch=3770 --no-distrib --no-build
and the Create.bat like:
set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*
call cef_create_projects.bat
Resolve error:
Error on build with Ninja
try running “gclient runhooks” from the chromium/src directory always from cmd
this command renews the files in depot_tools
on Windows 10 especially there are various problems and various issues (node.js is missing, etc.)
ImportError: No module named win32file
Install correct WinApi on python folder.
C:\code\depot_tools>python -m pip install pywin32
Error FAILED: v8_context_snapshot.bin
where suggested running "gn clean" before a full build in all out path to build, after each build with error.
Wait about 4 hours and you will have your buil.

How to use Cross Linker instead of native linker

I am trying to cross compile a package for MIPS architecture using toolchain provided by OpenWRT. I come across following error during make:
/usr/bin/ld: skipping incompatible /home/user/package/zlib/zlib-1.2.8/libz.so when searching for -lz
In this case zlib is already cross compiled for MIPS but make is using '/usr/bin/ld' instead of 'mipsel-openwrt-linux-ld'. I have tried ./configure with --with-ld option but it says that '--with-ld' is unknown option.
Did you check following page, https://wiki.openwrt.org/doc/devel/crosscompile?
Pass the host and build to the build system of the package to trigger cross-compile
For GNU configure, use --build=architecture-unkown-linux-gnu --host=architecture-openwrt-linux-uclibc (for example: ./configure --build=x86_64-unkown-linux-gnu –host=mips-openwrt-linux-uclibc)
Run ./config.guess to get the --build= option.
Check the output and ensure that 'checking whether we are cross compiling… yes' is yes.
For GNU make, override the CC and LD environment variables (usually not needed if GNU configure was used)
make CC=architecture-openwrt-linux-uclibc-gcc LD=architecture-openwrt-linux-uclibc-ld
I know that this two years old. I had the same issue when building foreign packages for OpenWrt.
As for the most recent OpenWrt, you have set at least two ENV variables:
add your Path_to_OpenWrt/staging_dir/toolchain-*/bin path to your PATH ENV var
set your Path_to_OpenWrt/staging_dir to your STAGING_DIR ENV var
You should now be able to compile an autoconf based project with AC_CANONICAL_HOST (look it up in the configure.ac) with ./configure --host=architecture-openwrt-linux.
You probably will need to set more ENV vars e.g. PKG_CONFIG_PATH, PKG_CONFIG_LIBDIR to make pkg-config work appropriately.
I have written a bash script which does all the work for you:
sdkenv.sh.
You can activate the script with source sdkenv.sh before configuring.

Unable to run Woden Physics Example in Pharo

I am trying to run the Woden Physics Example inside Pharo which involves getting Bullet properly compiled and the smalltalk bindings properly installed in Pharo.
I am using Linux Mint 17 x64.
But NativeBoost seems unable to load the compiled libraries. I have been using the sources provided here:
https://github.com/ronsaldo/bullet-pharo
https://github.com/ronsaldo/swig
I built the modified version of swig as well as the bullet libraries and bindings with the provided build scripts.
I also have doublechecked that the bullet libraries are 32 bit.
Opening up the Woden physics example returns this error:
failed to get a symbol address:
PharoNB_new_BTDefaultCollisionConfiguration__SWIG_1
When examining the call stack in the debugger, it turns out that the module handle is 0.
I verified this by executing the same message as
BulletCInterface nbLibraryNameOrHandle
executes:
NativeBoost forCurrentPlatform loadModule: 'BulletPharo'
This message returns 0. I tried to specify the full path to libPharoBullet.so in the workspace, like:
NativeBoost forCurrentPlatform loadModule:
'/home/martin/.local/share/Pharo/bullet-pharo/libBulletPharo.so'
with the same result. I also verified it with a 32 bit system library of mine (liblzma) and there NativeBoost was able to load it, as it returned a non-zero handle.
So i suspect something during compilation went wrong...
I also did
readelf -h libPharoBullet.so
and its ABI was "UNIX - GNU" while the ABI of pharo-vm is "UNIX - System V"
Could this be the problem here ?
How can i force the ABI to be System V when compiling ? I use gcc 4.8.2
Or what steps could i otherwise perform ?