Hello,
Enabling the build system for Intel MIC k1om is non-trivial using Python-3.4.4
Using Python2 for the k1om is very popular, but I require Python3
support on k1om.
The first requirement to complete this build involved the download and
extraction of pre-built MPSS RPM's.
Then built required host python bins using GCC.
Lastly, build MIC bins using ICC.
The exacts are appended to the end of this message.
I would like to discuss a few change requirements that trial and error
has revealed.
1.) libffi requires the University OF Cantabria patch because the k1om
is not binary compatible with x86_64. [attached]
These libffi changes could be implemented using the __MIC__ or __KNC__ macros.
*see https://software.intel.com/en-us/node/514528
2.) ./configure script halts during failure to locate readelf for the host.
I simply commented out these lines in the ./configure file:
#if test "$cross_compiling" = yes; then
#case "$READELF" in
#readelf|:)
#as_fn_error $? "readelf for the host is required for cross
builds" "$LINENO" 5
#;;
#esac
#fi
Ideally, ./configure would support ICC and k1om.
Am I missing something in the configure/make commands below?
Is it possible to bypass the readelf requirement when cross-compiling for k1om?
Additionally, are any of the command line parameters below unnecessary?
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PYTHON_FOR_BUILD
_PYTHON_HOST_PLATFORM
HOSTPGEN
HOSTARCH
BUILDARCH
Thanks,
Rob
#copy/unpack the k1om bins tarball
cd /home/
wget mpss-3.4.6-k1om.tar
tar xvf mpss-3.4.6-k1om.tar
cd /home/mpss-3.4.6/k1om/
for rpm in *.rpm; do rpm2cpio $rpm | cpio -idm; done
#vars
PythonVersion=Python-3.4.4
k1om_rpm=/home/mpss-3.4.6/k1om/
INSTALLPREFIX=/home/Python/release/$PythonVersion-mic
SRC=/home/Python/$PythonVersion
echo "Compiling host Python"
cd $SRC && make distclean
cd $SRC && ./configure
cd $SRC && make python Parser/pgen
rm -f $SRC/hostpython
mv $SRC/python $SRC/hostpython
rm -f $SRC/Parser/hostpgen
mv $SRC/Parser/pgen $SRC/Parser/hostpgen
cd $SRC && make distclean
echo "Configuring Python for MIC..."
cd $SRC && CONFIG_SITE=config.site \
./configure \
CC="icc -mmic" \
CFLAGS="-I$k1om_rpm/include -I$k1om_rpm/usr/include -wd10006" \
CXX="icpc -mmic" \
CPPFLAGS="-I$k1om_rpm/include -I$k1om_rpm/usr/include -wd10006" \
PKG_CONFIG_LIBDIR="$k1om_rpm/usr/lib64/pkgconfig" \
PKG_CONFIG_PATH="$k1om_rpm/usr/lib64/pkgconfig" \
--host=x86_64-k1om-linux \
--build=x86_64-linux-gnu \
--with-cxx-main="icpc -mmic" \
--disable-ipv6
echo "done"
echo "Compiling Python for MIC..."
cd $SRC && make \
PYTHON_FOR_BUILD=./hostpython \
_PYTHON_HOST_PLATFORM=x86_64-k1om-linux \
HOSTPGEN=./Parser/hostpgen \
HOSTARCH=x86_64-k1om-linux \
BUILDARCH=x86_64-linux-gnu \
EXTRA_CFLAGS="-fp-model precise -shared -fPIC" \
LDFLAGS="-L$k1om_rpm/lib64 -L$k1om_rpm/usr/lib64"
echo "done"
echo "Installing Python for MIC"
mkdir -p $INSTALLPREFIX
cd $SRC && make install \
PYTHON_FOR_BUILD=./hostpython \
_PYTHON_HOST_PLATFORM=x86_64-k1om-linux \
prefix=$INSTALLPREFIX
echo "done"
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/brett%40python.org