Building rpm package

arnaud gaboury arnaud.gaboury at gmail.com
Tue Sep 8 08:04:17 UTC 2015


First try at building a rpm package and as feared, errors are returned.

Fedora 22

I wrote my own .spec file based on this package[0]. My goal is to
build R using Intel Compiler and MKL. The whole part of the spec file
is untouched, except for the configure, variables and flag part.

At the begining of %build section, I have added this:

-------------------
%build
.......
source /opt/intel/compilers_and_libraries_2016/linux/mkl/bin/mklvars.sh intel64
source /opt/intel/bin/compilervars.sh intel64
_mkllibpath=${MKLROOT}/lib/intel64
_openmplibpath=${PROD_DIR}/compiler/lib/intel64
export LD_LIBRARY_PATH=${_mkllibpath}:${_openmplibpath}
export MKL="-L${_mkllibpath} -L${_openmplibpath} -lmkl_intel_ilp64
-lmkl_core -lmkl_intel_thread   -liomp5 -lpthread -lm"
------------------------------------------------

$ cat CONFIGURE.log | grep -A30 'R is now'
-----------------------------------------------
757-  Source directory:          .
758-  Installation directory:    /usr
759-
760-  C compiler:                icc -std=c99  -ip -O3
-opt-mem-layout-trans=3 -xHost -mavx -fp-model precise -wd188
-DMKL_ILP64 -qopenmp -parallel
-I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include
761-  Fortran 77 compiler:       ifort  -ip -O3
-opt-mem-layout-trans=3 -xHost -mavx -fp-model precise -DMKL_ILP64
-qopenmp -parallel
-I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include
762-
763-  C++ compiler:              icpc  -ip -O3 -opt-mem-layout-trans=3
-xHost -mavx -fp-model precise -DMKL_ILP64 -qopenmp-parallel
-I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include
764-  C++ 11 compiler:           icpc  -std=c++11 -ip -O3
-opt-mem-layout-trans=3 -xHost -mavx -fp-model precise -DMKL_ILP64
-qopenmp-parallel
-I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include
765-  Fortran 90/95 compiler:    ifort -ip -O3 -opt-mem-layout-trans=3
-xHost -mavx -fp-model precise -DMKL_ILP64 -qopenmp -parallel
-I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include
766-  Obj-C compiler:     gcc -g -O2 -fobjc-exceptions
767-
768-  Interfaces supported:      tcltk
769-  External libraries:        readline, zlib, bzlib, lzma, PCRE, tre, curl
770-  Additional capabilities:   PNG, JPEG, TIFF, NLS, ICU
771-  Options enabled:           shared R library, shared BLAS, R
profiling, memory profiling, static HTML
----------------------------------------------

The first two lines source scripts to populate environment variables.
1- I am surprised not to see these variables when running $ env from
my build shell. Any reason?
2- the build fails (cannot find ICC) IF I do not source these two
scripts before I run $ rpmbuild. When these variables are set, make
succeed.

I guess these two lines (source
/opt/intel/compilers_and_libraries_2016/linux/mkl/bin/mklvars.sh
intel64
source /opt/intel/bin/compilervars.sh intel64 are not read by
rpmbuild. Maybe the shell command source is wrong ?
Hint: shell is zsh (normally I can build everything)

Thank you for hints

-- 

google.com/+arnaudgabourygabx


More information about the devel mailing list